{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "20d9f396c5e1eb02",
   "metadata": {},
   "source": [
    "## 激活函数\n",
    "\n",
    "前面我们讲到的模型函数为：\n",
    "$$\n",
    "y = wx+b\n",
    "$$\n",
    "\n",
    "它是一条线，因此它只能拟合线性数据，但实际中，还有很多数据是非线性的。"
   ]
  },
  {
   "cell_type": "code",
   "id": "a6e3ebc678b5468",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:22:29.650351Z",
     "start_time": "2025-06-19T14:22:29.611468Z"
    }
   },
   "source": [
    "import matplotlib.pyplot as plt\n",
    "# 模拟出一个二分类的样本数据集\n",
    "import numpy as np\n",
    "\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y = np.concatenate((y0, y1))  # 合并两个数组 拟合\n",
    "\n",
    "plt.scatter(x, y)\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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9evXm9stubm59cd49913zRNDPwB8rrrqKueiiy4y2/RNXT8YJkyY4HQ2b7zxht9bGXo9el16DUqb63W0jYasL774wvnjH//onHXWWc6ll17qdHbarK8jabQOP/vsMxNEtB6zsrL8Xq+vefyMM85w/vrXv5rr1jc8XTozvY7vfve7zve//33z//v27atfwqFu16xZ48TExDirV682wX/q1KlO796960e8TZw40Zk9e3Z9+b/97W/mdtzDDz9snuf6AaAh86OPPnI6s+nTp5svSJs2bWpUh0eOHKkv0/Ra9X1Mv/joc7yoqMiE0djYWOeTTz5xOjP9MqTXqc89ra+MjAwnISHBjCAKpzptSEO0vrfo7demwqVe3RT2YWTSpEkt3nt/880368vs2bPHufrqq50ePXqYF4i+cBomWS2r++gLyefrr7824UMDjraiZGdn1weczkTPcdSoUS1u0+tp+LsoLi42H059+vQxHwb6gaf36isqKpzOTl/AOvRP39z1RTxw4EDngQceaNS61fR61bfffuv8+te/Nt/Sevbs6fzoRz9q9KHeWVv5/PUpCZe6ffzxx80bufbp0ZaSd955p9EQZX1dN/Tiiy+aflxa/oILLnBef/11p7PzV4dav/6u9fbbb6//vSQmJjpjx451tm3b5nR248ePd0477TRz3trKpY8b9lUKlzptSMOF1ueuXbuabQuXenVThP7H9q0iAADQdXX5eUYAAIBdhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABi0/8BncmoSKKbcd8AAAAASUVORK5CYII="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 5
  },
  {
   "cell_type": "markdown",
   "id": "1f95663a25c7a8e",
   "metadata": {},
   "source": [
    "对于上面的样本，我们需要使用一种新的函数来拟合，这个函数叫做激活函数。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ba68af8d5aa58429",
   "metadata": {},
   "source": [
    "## 有哪些常用的激活函数？\n",
    "在神经网络中，激活函数用于引入非线性因素，使得模型能够学习和表示更复杂的函数。以下是一些常用的激活函数及其特点：\n",
    "\n",
    "1. **Sigmoid**\n",
    "    - 公式：$$ \\sigma(x) = \\frac{1}{1 + e^{-x}} $$\n",
    "    - 特点：输出在 `(0, 1)` 之间，适合二分类问题的输出层。\n",
    "    - 缺点：容易导致梯度消失\n",
    "\n",
    "3. **ReLU**\n",
    "    - 公式：$$ \\text{ReLU}(x) = \\max(0, x) $$\n",
    "    - 特点：计算简单，缓解梯度消失问题，是目前深度学习中最常用的激活函数之一。\n",
    "    - 缺点：对于负数输入，可能导致神经元“死亡”\n",
    "\n",
    "5. **Softmax**\n",
    "    - 公式：$$ \\text{Softmax}(x_i) = \\frac{e^{x_i}}{\\sum_{j} e^{x_j}}, \\quad \\text{其中 } i, j \\text{ 为输入向量中的元素索引} $$\n",
    "    - 特点：将输入转换为概率分布，常用于多分类问题的输出层。\n",
    "\n",
    "通常，ReLU 及其变种适用于隐藏层，而 Sigmoid 和 Softmax 常用于输出层。"
   ]
  },
  {
   "cell_type": "code",
   "id": "880b74ed6acea223",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:23:36.038799Z",
     "start_time": "2025-06-19T14:23:35.990847Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "def sigmoid(x):\n",
    "    return 1 / (1 + np.exp(-x))\n",
    "\n",
    "\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "\n",
    "y = sigmoid(x)\n",
    "\n",
    "plt.plot(x, y)\n",
    "plt.show()\n"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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HTs22fOrfwi+/I/Bn18vr9V3+dPr5bX6Ln94vVF11Ii40YEVAACYijACAABM5ddhJCQkRObMmaPv/YE/vV5eq+/yp9fLa/Vd/vZ6L8QSHVgBAIDv8uuaEQAAYD7CCAAAMBVhBAAAmIowAgAATOXzYeTxxx+X4cOHS3h4uERHR9e4T0ZGhowdO1bvExsbK7///e+loqKizuc9efKkTJgwQQ9Wo573jjvukDNnzoi3WLdunR6ttqbb1q1baz3ummuuOW//u+++W6wgMTHxvLL/5S9/qfOYkpISue+++6RNmzYSEREhP/3pTyU7O1u82aFDh/S/ty5dukhYWJh069ZN98ovKyur8zgrndsFCxbo8xkaGirJycmyZcuWOvd/7733pHfv3nr/AQMGyIoVK8TbzZs3T4YMGaJHllafO7fccovs3bu3zmOWLl163jlUr9nb/elPfzqv3Op8+do5reuzSN3UZ40vndfG5PNhRH1A//znP5d77rmnxscdDocOImq/jRs3ymuvvab/YcyePbvO51VB5JtvvpFVq1bJRx99JJ9++qnceeed4i1UADt+/Hi129SpU/UX2ODBg+s8dtq0adWOe/LJJ8UqHnvssWplv//+++vcf/r06fKf//xHf/CtX79eTzvwk5/8RLzZnj179BQJL774ov43+Oyzz8qiRYvk4YcfvuCxVji3y5YtkxkzZuiAtWPHDklKSpIxY8ZITk5Ojfur9+348eN1QPviiy/0l7q6ff311+LN1L839eW0adMm/TlSXl4uo0ePlqKiojqPUz+Aqp7Dw4cPixX069evWrk3bNhQ675WPadu6gdf1deqzq+ivot87bw2GsNPvPrqq0ZUVNR521esWGEEBAQYWVlZnm0vvPCCERkZaZSWltb4XN9++626HNrYunWrZ9t///tfw2azGUePHjW8UVlZmdG2bVvjscceq3O/kSNHGg888IBhRZ07dzaeffbZeu9/+vRpIygoyHjvvfc823bv3q3PbVpammElTz75pNGlSxefOLdDhw417rvvPs+6w+Ew4uPjjXnz5tW4/y9+8Qtj7Nix1bYlJycbd911l2ElOTk5+t/e+vXrG/w55u3mzJljJCUl1Xt/Xzmnbup9161bN8PpdPrUeW1MPl8zciFpaWm6CjAuLs6zTf0KU5MYqV+dtR2jmmaq1jCkpqbqOXQ2b94s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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "id": "e60ea4fe277aedf8",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:29:14.099659Z",
     "start_time": "2025-06-19T14:29:14.039970Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 大都督周瑜（我的微信: it_zhouyu）\n",
    "\n",
    "# sigmoid(f(x)) f(x)=wx+b\n",
    "def sigmoid(x, w=1, b=0):\n",
    "    return 1 / (1 + np.exp(-(w * x + b)))\n",
    "\n",
    "\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "\n",
    "# 不同斜率对比 (w值变化)\n",
    "for w, color in zip([0.5, 1, 2, -1], ['blue', 'red', 'green', 'yellow']):\n",
    "    y = sigmoid(x, w=w)\n",
    "    plt.plot(x, y, color=color, linestyle='-', label=f'w={w}, b=0')\n",
    "\n",
    "# 不同偏移对比 (b值变化)\n",
    "for b, color in zip([-3, 3, 6], ['cyan', 'magenta', 'orange']):\n",
    "    y = sigmoid(x, b=b)\n",
    "    plt.plot(x, y, color=color, linestyle='--', label=f'w=1, b={b}')\n",
    "\n",
    "# 图表美化\n",
    "plt.title('Sigmoid Functions with Different Parameters', fontsize=14)\n",
    "plt.xlabel('x', fontsize=12)\n",
    "plt.ylabel('sigmoid(x)', fontsize=12)\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.legend(loc='lower right')\n",
    "plt.axhline(0.5, color='gray', linestyle=':')  # 添加中间参考线\n",
    "plt.xlim(-10, 10)\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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0bNnT7W/HjlyRH3ezz//jFtuuSXX8fF343fDXApzHCdOnFBeVML91RHzcW6/N7/D06dPq/2T48/tuLnrrrvUWG+44Qbl8fn+++/x2GOPITo6Gg899BB8Qf369XH77bfjq6++Utv6+OOPO12OvylzjvhdcN/h8Wb+vtwGV6+Zf5kLxWP5wIEDKl+H3wNDgDwm+VszNNumTZtsn0lvNH/fs2fPolu3bspTU758efUaj0+OOyIiQn2PVatWxebNm9W+wfX9888/KqHcEeZQXX755WjcuLE6J3BM/B34e/FY5brN7aS3nHCfNPGkgCM3eC7heYjr5jnqxhtvVGNlbhe367fffsPixYtx2WWXXfTeH374QXmneOxy305KSlLPe7s+HgdcH38PJuHPmTMHr732Gq12FC9eXM3z++W287dimJbf03333Ze5Di57zz33qOO1bt266hwaExOjQo39+vVTvwtDjmYuI8m5n5jnDF/vK+fOnVPbxd+e6+J5gOc5Rju4zz/99NNqO0OaQFtq4c4vv/yi7gZ4B/HUU09p8+bNu+huzh2P0qeffqqeo4cqPT098/lNmzapOwBXHiVOQ4YMyfb8I488op7nHeOYMWOy3fHQU8HXVq1alfn8jh07tKioKK1cuXLZ7qgvXLigtW/fXi3/5Zdf5unJMT0Fr732WrbnJ02a5PTuOjd4d8Q7Im5zzunbb7/NdRzueJRq1qyp7rJMEhIS1PfF35F3piazZs1Syzdt2vSi35WeNkfvnLlu3pG7O56RI0eq99xzzz3q9zHhHTDvIjmmpKSkizxKvCOkJ8SEnqR69eppERER2sGDBzOfv+SSS9R6eHeak7z2U7J+/Xr1edynTH766Sf1HD0R9GLQI2bCO+5atWrlub873s07w3xPmzZttMTExMznuc3cV+l985VHifCun8vde++9mc+58uTm5h3N7TV6GrhPz507N9vz27ZtU/sd9zFHTC8lx57TU8jfjp7fypUra3v27Mn2Go8Pvo+epZzfA6c333wz2/L0nvD5UaNGXfT5zjyg3nqUfv/9d+WdpKeZ28PzC73hOdm4caPyFF177bVO9xnu4/Pnz7/ofd6uj/swPVwmPN54LqS3jZ460ztPeH7k8ZTzt6Lnn+vq27ev8oKa8FzStWtX9dq///6b+XxeHnZf7iszZ85Ur9E7lZMzZ86o7y3UEUPJAjA8xQPR0Y1KdyldoNu3b79oeWcXDoa8+JwzF3H//v1dGkr8XIbsHFm8eHHmGBwvvoQGD1/77LPPMp975ZVX1HNvvfXWRZ+9bNky9drVV1990Wc7Gig8IdCg4wnm/Pnz2ZalC5shE08NJVfuf4YSXY3DXUPJcftzvkbjIGdo9c8//8xzzN4YSjQqeKLev3//Rcs/9NBDFxmp5gmWobqcmK/xxOhoKPHCdPLkSc0buP+UKVMmm2HCCzD3O94U8PN+++23TIObjx944AGfGUrOvnfzNUcDMr+GErfBvFHxh6HE49rZd2Py5JNPqtcdwyrmMcDwWk5Gjx7t9AbG8Xfn75bze+ANQs7wsvkawzq+MpQcb3Kef/55FfKngcvP4djzgsYFDRJHo8PcZxhK85Tc1kfjJif8nfgab2RywnMht88xJYGhOdMAdHWzwRtpd/YhX+8rMw1D6bnnntPCFQm9WYAnn3xShQEY/vjrr7/w77//Krf3+PHjMXnyZBVGoSs0NxiyYbirZcuWF71GtykTxZ1BN2/OpEiGWUizZs0uCpeZr5lJp2TNmjUu3eoMpcXFxWHt2rW5jn/btm2ZYSQu7whDA9yG//77D55AmQWu0x8wZJYTSjoQhoVMGPbhODp27OjzMTBkwNBAw4YNMz/bEYZDPvnkE/XdM+HYm/GzNJ2hAoYHGQ7gOhmqLVasmEd6WT/++KMKrXL/YXiN4Y0OHTqo74aPmaTrTtjNU/LazqJFiyIY+Pvvv9VfhlWdJZUzVG7+5W9lwmOJoXhX6+N5xpm8AY8bhmE5OVbtMUTI4zGv/Sa/MJVg5MiRap6fxzAYzw0MmzqeC7lvv/322yqpniHhtLS0bOvh+M1zlmM1oiu8WZ+z0K+5jKvXuH38LStXrqxCWxs2bFAJ/G+99dZFy5tjMH/jgt5XOnTooMbMCmxeZxiy5PmM551Aa5UVFGIoWQSesJnDYeZxJCYm4vnnn8dHH32kYtTM22HMOreLJnMMnGHmJDjD2QWPsem8XnM8gZgxfmefwwOJz3P8ucHtJczf8XQbAkFu3w1Pgo7bxZNhzouLL8jte3c8WZvLeTN+5h8wL4m5SixZZ54El7vpppvw/vvvo2bNmnmOk4YPDSUaQsw327Rpk8qz4ImZhrRpIPnDUHJ3O/OLeeNQtmxZ+APmzxDmv3DKTZPNER5Pzi5m5vp4M5YbXJ+joVRQ36c7Nzm8qaTxRJg7w5s+6tCZOmm8qOesGM7tePF2ffk9hzJPlM5tniNN49Cd37ag9pXixYsr44vVhrNmzcKvv/6qnuf15tlnn1V5XqGOGEoWhTsnkyq5o+/du1fdcTi7OzbhAZmQkOD0Nd5Z+BPzZMDPqV69erbXeALg83l5IMxkQCYcFuQ28MSQnp7u9DUaOflNUmSCJe9M7Xa7z40lx+/dGfxcx+W8/X6YtMuJSdhMzGfCKZOi6eFjUjaTpHPDNHxoCDGJ2vE5/n3llVfUd81EZl6caFgGG6bwn7NkX19g/objxo3DwIED3X6fqzt+c308rzh6FYIJFk3QcOE+SS+nI7yw07Dx5Dvxdn35xfwteH5nNMFq+4op0cFiE57HeMwzeZ3FH/Tw0dvHoolQRpS5LQx3XIbT3KF58+bqDsFZiIt3Sv7EDPc5U4mla593hnlV9NWrV095GHiiyHknyYPTX9vAg9yZt4sVHr4IJdDNz5MvK1TywjQ43L0z5wmxVq1a2LFjh9NtMH+P/FRTOkLPEqtnGArmnTcrcfjZeUEXPasqWSlJY4nfubnPcD3c3k8//VR5ZdytivL0u/InrBSl4UgvCCuC/IFZobR8+XJLrs/Vb+TP34chQ1aS5jRqGMpavXp1wNfnSTSBxwirBt095+S2//vzt42IiFDnE4bjecNEWBUY6oihFGAmTZqElStXOn2N7l4ePPRK5HXXx9JSQjVbGhYmjEN/8cUX8CfMXaE7mSXwjrlLLCF95plnspW0uoIXGZYq06PEEI8jvIjyYuQP6AGgUeRoyHDczBvzBbzjIiz5N13iJvRkOXqDeJImlA5wF5YH04XPVjd6broO7/p4B0iPWH56hdHYclwv4eeZ25Izn8wVNICYT8UQHPMbTO8aDUnmyJm5Ge6G3bz5rvzBsmXLlDwEjWGGIfzlDeP3xAsgL040VHPCY94dY9yE7VF4gX7hhRdUKDQnNA7MXBdv4W/EnB5/5QnSe82wleP4aTgwXOzKu16Q6/OEQYMGqe+cuarOQmwsxXdsbZTb/u/rfWXTpk1Ovdbmc+6eA4IZCb0FGOpzDBgwQCn/MmGZCX08UJggTRcwLyjMU6IhkdeJj5oWDNXxbp26MbyYfffddyovhLFlf+TJmIrRvNBRL4gJ4DR46AnjZzJJmxoiZvuH3GCyIPU9aOwxmZLbQUORMXHmDNDd62toEHG91E2h+5gXbWqX0DjNmbTpDVwvT7TM7WFYiR4H5gLQA8Rt5Wumzgy9K1yuf//+Sp+I3yFP3jkTsR3hnR1/c/72/K7Yf4zGJk+QNMSYzJ2fhGUaWfRcUTuHY6GRxO+H3qRbb731olCrK2gAcV/kBcfRGGLeHfd7rpO461FiblOhQoWUVg8vbmZukKuWNfmFnjMzMZaGtNnChKErs90GtYP8CS98/O6YYM/tpm4Wv4N9+/Yp7wG/W3eNEn5fpsYWvdFMpqeKOA0+88ahXbt2qsDEW7g/00PMcxGT9/lbMzGYky+gXhWPXXqAeM7hBZuGPY8t7kee9kHz9fo84eGHH1aGKW9qaXxfe+216lpAY4Q3u/TMT506NVMzifsBIw7MY6UhwxsinrPMUJsv95X58+cr3Tgep/T807Ns6kvxOzJvBkOaQJfdhTvUdaFSK1WbWXrLEnlOLM1nubijdkZeytzUo2EJKZVhqUPSqFEjpc9BBWUu//7772db3lVpvKMKb05clTybmlBcH3U6+PnU6vBUmXvv3r1KKdhU/b3yyiv9qsxNfvjhBzVWlv9S9+Txxx9X+iC5yQM4K+HPbYzUDrrqqquUfhHHVaNGDaW5Q40WR7gvUAqBJf+eKHO/9NJLSgfJ1E5imfqSJUs8GqOzkvuPPvpI69atm/pc7pdU96UC8YQJE7KVSucFZS5MeYacysBvvPGGet6VtpGr/X3OnDnaZZddphSMzXXn9R53ZBgccaYyzc+jOjl/T37vlDVwhq91lAhlGqhb1KRJEzUOyixwf7n77ru16dOne1yez/NPv379MpXLqerOY4EqzI7aQLmdE1wdzzyGKFHB74rl8K7OG/k5dnluo5QBzxWUM7j99tuVbpGz3zgvSQlfri+33zG3/W/atGlKr4m/A88B1Lmi9AvPo9Rqc4SK3/yt+F1xfTl/a1/tK5s3b9YGDx6stWzZUh3//DzKknA7qNMXDtj4X6CNNcG/8G6XiYr0zPDuThAEQRAE9xBDKYQwdWocYYiEYROGB5g/RPerIAiCIAjuITlKIQQ7ajO/gMl8rCxiFQfzhJhXQuFKMZIEQRAEwTPEoxRCsJnpxIkTVVIvdWkolsaqLiZZszJHEARBEATPEENJEARBEATBBaKjJAiCIAiC4AIxlARBEARBEFwQ9sncVCllNRhF+cKlE7IgCIIgBDuapuHMmTNKnNNfgsok7A0lGknsgiwIgiAIQvCxf/9+VKlSxW/rD3tDyWzvsHfvXiUBH06eNMrYs5WBPy1xqyHbLdsdDsh2y3aHA6dPn1ZtlPLTpskdwt5QMsNt7GfFKZwOLPb64TaH04El2y3bHQ7Idst2hwN2owG8v9NmwucbFQRBEARB8BAxlARBEARBEFwghpIgCIIgCIILxFASBEEQBEFwgRhKgiAIgiAILhBDSRAEQRAEwQViKAmCIAiCILhADCVBEARBEAQXiKEkCIIgCILgAjGUBEEQBEEQgsFQWrx4Mbp27ao6AVOSfMaMGXm+Z+HChbjkkksQGxuLOnXqYMqUKQUyVkEQBEEQQh9LGUrJyclo3rw5xo8f79byu3fvxk033YSrrroKa9euxRNPPIEHH3wQ8+bN8/tYBUEQBEEIfSzVFPeGG25Qk7tMnDgRNWvWxHvvvaceN2zYEEuXLsX777+PLl26ePjph2iqGfM5G+w5Pvb2NfOxOeX22Ntlaff6tzmgIAgBQNMAjQ1ANWMynjPnI6IBm3Hfm5EKZKTAlp4MpJ0BVJNUvt9YNioeiIjU59PPAxnnsq/LkZgS+rrVsuf09WUNKseyJYHI2KxlU09ftJxds6tJiy4JLSoOmqZBS0+GlnLC2CQN6p/DX3tMcWiRhfXH6edgSzmhz+dYjv/SI4ri2NlzSI1LRUR6KiIvnMj6ePOv3kcVGUWKQosxus6fT0HU2awx5Ny0jOLx0OL0pum2M2mITExw+TWklyoMrXBxfdmkdEQ5LGvTsp+f00vHwV6khLFeO6JPHLv4N8hcNhb2oiX1Zc9qiE44mvW92u04nXQaGQdLqKa4GaVikVHcXBaIPnY4+8rM31vTkFEiGhklSql523kbog8fNva3HMtCQ0ZxLltSf+48EHM0AbBnZP8ujOUz4jmOUihWvBxKlq6CYMZShpKnLF++HNdee22252gg0bPkipSUFDWZJCUlqb8REY0RKmgaT4y5TzZbBMqWZdflKLeWz5qiHaYYYxeKyfGc49+seU2LceO9nIoZU3Fj4snMOLHnE55Q1MnX6DodLoTNdtvTgLREIDURSE+ClnIaMScOQkstDnuVrlnLHZwFJO/Vl9fSlHFh4197qjrRay3ezFp26/uwnVyhv8bl1ZRuLJsG7ZrFQIR+KrWtfUZfN6/GmsOkLkp2aDesB2KMi+iap4DdXzgsYzcuMvpj7eYdQOHK+rKrh8C2/QPXm33jZqBYfX3ZDSMRsfkNlHe1bOeVQKlL9Acr3kfEnhdcrvf7io9jd3RlXEi/gG4r96BlZdepDUPTmmJJWmGkpKfg/Y2N0andNxctY55Feh0CfjbuS//3X19cd+PnLtfb92AkppzTL8bzNj6Gzj1dRxyGHCiEMefPq/lZa5/AzbeNcbnsyP3F8PIF/fz/7dpBuPM219/v2H2l8YRhzE1a8xj63+56DJ/tK4d+KbrB8/bahzH0tkkul/1hX0XcnqIbMS+u64dXb53sctm5+yvjhgsH1fxj6+7Fh7d+le11tacY9tCSA1XQ4fwBNX/Xhtsxtdf3Lte7+lBltErW19t1a1fMvH4eEJ3qdNmtRyqh4Rk6FYBrdl6D39uvBuJPOV12z/HKqHnqIJ5Lb4fXRi6BPyio81lQG0pHjhxB+fLZTwd8TOPn/PnzKFSo0EXvGTVqFEaOHHnR85oWCS3T2s95Z5X7Y5vNyZ1YALHZjJNuHkT6xvZwG1s+nF12exFoWjFoWjzsdv4tCru9qPrL57PPxzt5jsZWLOx2DYmJicpo4J1XuMATiqW3m3ezGedgs5+HPaZM5tMxJ/5EZMph2NLPICI9Sf1V8xlJ0CLikNj4o8xlS63uiZjTf1+06lLc/sh4HOv4X+ZzJTe9j9iTi5wPBRE4VunJzMclDv6BuITfXA796NGDQKR+ril+ajcKndnmctljCUegRes3asXOnEDhVOcXGZJw/Bjscbo3p+j5CyjickngxIkTyLigX5xLLk9FrG6LOeVwwmGsPjAHa46tweNfn0XJ610vO27FOCy9oM/33jIYqOjca84z4PpjG/DPOf3ZMkevAtKdX1402KAhLfNxsfMlgTTeIDnHjiyPRVRGDJBqeK2cEokoW5TKcbXx5iqXZW1aBGI0ngQ1qFN4apzr1WbYEGcMOdKe+7I2x2UzbNByW689a9kI3szksixt6cxltYxcl7U7LBuVx3ozMiKyxhsZBy0tDlA3zxeTHhmftWzphtDSN7v8LtKjiiMu7SC09HQcO+baU5YfeE4rCGya8jNaD+7oP//8M3r06OFymXr16qFv37547rnnMp/79ddfVd7SuXPnnBpKzjxKVatWVSeaEiV0F6h/yHJfZvcFe/vY1XN2tya7PQOnTp1AyZLFdc+8W+/jCSudZwlAnejMv45T1nM2m7PlXD1nrpe/Dd37PAASYbOl+O4X0HjRKY6MDG5zA9hs9aFp9QDwTrwBgLIhG7qkoZSQkICyZcsG3lDa+Slsp9YASduB5N0AjQUaQfSiFK4GrdvuzEVt/2ure3OcoEUXh3bLyaxlF3SB7ejv+mtRRYDo4kBUMaQhFlGFSgJX/5H15k1vwHZ6vR5WUmGraCAyRv8bEQ2t+ZtZlv3B2fo4zeXUe2Ky3lvxxkyPEhK3ACkJehhMhcIiss+XaJa17PnDuvcr5zJJEcCpCKBhhSxPVcdzwIELQBJgS4kA1E2dTf3V6gLaqsKZ4TRbyzTYtqUbyyDbsgnFjqPyE9WRZoRL/vhiPpodbYrEuCSkFEqFPVZDRnQG7FF2JBdNxrgnxyE2KhZxUXG4+aebUf5o+Uznry3GBlu0DRExEdAKa9jx4A61bGxkLCotq4QiJ4sgKiYKkXGRiIqNQnRctPpri7Qh/ap00JTheT5yWyQikujltinHsS3CppYxH6MR9Mf8d8wGW7LxekY6bAf2Abt2Art3wrZrB7BnJex7dyPi7FnYznAbY3I5X55zeJ4bFeliOQb17ECxokDx4kDRYkCRIkBsDBAdDURFATHGfM6/OZ7Tcj7nOOV8L9fLY9XVxO/HmOfZ+VRiIkqWLo2IHO/TIiJwNDoa22Ji9InzUVHYGRWFExERGH32LHqnpqr1zYmJQbeiRjjSCWNSUvB4WppadmlkJDrGXWwkxWmaige8aLfjMZoXHGd+7pJz4fTp0yhdurQymIoV00Oj/iCoPUoVKlTA0aNZcVrCx/zCnBlJhNVxnHLCi0fALyAFih0ZGccQEVHO4ttNQ4nu8USHv4l5PJfzdU4abDYaZccRFXWcV2sAc3IcvyUMo6m+g/HEv3WUNyrY4YXH7/t5WhKQtC1roneFIaoODhWsOz8FTq50PsaMZNgcx1euPRBXTg9XRRfTjR81FYMtpmT2Za+YqhsWUUVhMwwMGognjx1DuXI59vOmL+a6Gdl2i6rd3N/+kh6E8I9UBrZUBuiA2gr9LyfefHM1Gx2WTY4H9sRnfz8fFgdsJQFblJ5bszdxL5KuScLJuifxX+p/+M/+HxKiEpAYm4ik2CScLHRSGUnli5RH68qt8deUv5Fe2Y5LK12KUoXoe8tOe7TPeuAQuXTGpbg06wHvP9ylZS6v8UKbkABs25Z92roV2LWL7pCL3pLdUX5ONzxo4HDixTS3eRev2+KZ15X/48Zvt2F2O5KPHcOhcuXwX0QEmhpnLvIzQ525vPV0sWKZVV3lAFTLkfhQzGG+VWwsIozrZ3MAfzomSNAmSgJOHLbhyBFGfCLxwRGgdWugXTv/bHZBXbuC2lBq27at8iA5Mn/+fPW8ECrEGp4eTt7C+62zymCy20/h9OmtKFGCRiJDMeZVai9PGQD+MSZHeDDWyGE8mVOFkPVCuYTeiAuHgcIOCZorHtZzc+glyQm9LszrMZOCa9wDVLgGKNYAKFoXiC2dZQQZIaxMLtELNdwiLj/7iJ844WAA0W53TJ/sCWCDi/edN5wZ5q71ubEbmletosDxlONYeXAlVh5aiRVTV2DFwRVIOJegv84rpUF8TLwyhFpXaq2MI05VilXRPTZWgV7+nTt1AyinUXTKdXhSeXbq18+c7HXr4lTJkihZqxYiSpbUDR0nN8bBDt0D0x3ta5sNe8uXh2b8pm8BGGYsWzfHGcw8i9GWZeKKngWn08Y4EzqSmkoHBA0fffrkCMB8b/PxEYfHF4wwrSMvvug/Q6mgsJShdPbsWezYsSNb+T/L/kuVKoVq1aqpENvBgwfx5ZdfqtcHDBiADz/8EMOGDcMDDzyAP//8E99//z3mzJkTwK0QrId5heFUCampZY17p4gcV6YdDlc1x1t8eqR2GVPOXJViOQwnxynIT9BMiE7aakyGd0j9NY7R25Ozqqe4rGkkxVXQE4s5FeVfnpYdaDAYIQsNmiUOu46e/6tDG3CQw27X0pjP6cDkFSxH9ON8o/NYdXiVMoxW/KsbRbtOcX/MTlREFJqXb47LKl2GBkUb4JoG16Bh2YaINH+nQMNclS1bsrxCpjG0e7eeWOMMXvyrV89mEKmpQQOgUqXsYR27HWn8jHLlfOIBChTnHXYh82xEh95dxus80h51fIPxHZTQNNS32VDa4aWGRj13ziAZ03sOHgRW5TB2cho/Jxz3YTegI65iRUZ89KlJEwQ9ljKU/v33X6WJZPLkk3pCZZ8+fZSQ5OHDh7Fv377M1ykNQKNoyJAhGDt2LKpUqYJPP/3UC2kAQShk3IY73IorNOP+zZkBtdswohhGyhlKYlzkHgD96RZBUPLndS5DZIiIze5Vavwc0OBJ3TgyqrpCHkZv5+W4Ys0EkFMnt6qDMcQ77sLG81+49zE0iK78/EocMqqNHKlXup7uJTK8Rc0rNFf5RAw5MoG2XFkLhNbPnQN++AH4+GPgr79cL8fcGBo/OQ2iunUBF6kUoQTPNDzaPmYVnpFBlfOWzDSUaEvf7LBb1bPbUfr4cTQsUwaRDoZjerpug+a0SznPiKa7REVlGT7m5GgMmfOsrSps7t8hhKUMpU6dOukaFi5wprrN96xZs8bPIxPCF5sRXuPU0Un+1E4nBtRWI4w3yZhaAXgYwJ0XuwqswrkDwM7PgfqDsgyd2v2A8wd1j1Cmd8iYClfL8iaRksxYCANYb/CLcTXT88b13cJMTboDQAsHDxHjHkXy8XEZqbjzxzuVkVSmcBlcUfWKzPAZw2kl4vxZgJJPNmzQjaOvvtLdF4QX8Zo1nRtEvNJaKRxYwLBA/3KHdPJSOQL9VzgsS1uEIhQmx08Cf6+IxIpjwPbtWQYRAzTMvXYF65ccDR5XBlCpUkHtoAstQ0kQgguG1hoZkyM81S00rqY/AVhleJboIb3bmKfxZIFco8O/ATs+Bg7NMeqPywJ1B+iv1+kP1KWBJ6io7CdGaM28E+c1nc5rxwsRbWEf8tKfL6kcJBpEq/qvQrXiTLW1MPQeff+9biAtX571PI2jhx4C7r9fv/qGOTxDrDCyIRmNJfTNdjdupfobhpGj2Ujv0PZd2b1C5nxCAq0Yx4BbFnTG1auXPWLJv3wulwI3wQExlATB5/D0dpUxJRgxFhpN/xl/PzbCcf0Nw6mAz1bJ+4Gdk4Fdk3VPkkm5DkCRGg6bEb5399mgqoCjri2v8/2MyeHr8jX/2/k/vP3X22p+crfJ1jaS1q/XjaOvv87yHjFe07070L8/QGHgcHZJGNDP/I1xBlhvpKj1NKKzMBK0M9KBtWuBKRuyG0P0DtFYckWlShlo2DACDRrYsjnqqlaVrz6/iKEkCH6FieNPA3gKwCIHL9NqliMYzzt6mfxsnKScBGbV1qvQCCvOavYBaj8EFM+RdB2ubAdA+/Fq43F7ozyolfEz3eT/M+fRs0dx38/3qfkBrQagV8PcCrwDRHIyMG2abiD941ApWqtWlveIcZswh96jv40jf5qRqA0jufp2OuFSgWUrgUWL2BgeWLaMhU3O18X8H3qCckYu69Sx49y5BEMGQ25wfI0YSoJQIPDk1cmYqOP0pXHq3GbEdD4xyqBML5OPxNOS9wFHFwI1euuPY0sBFa/Xe3YxtFa1JxCZi3JwuJBiCM5MMqKmtQwHYIQRYWXoLYeMkb9gL7Q+M/rgaPJRNC7bGKO7jIalWLcuy3tktIBS3iOKAz/8MHD11eLCcGAqVc0dHjeys/0HUORnYMU8oOVywOi6kgmVDVq1ym4Qcb5yZedfLQsGGfUU/IMYSoJQ4JQx8pWGAFhsGEw/AmBRwiOGl+kuw2i6zHMvE/uQHfpVzz1iDhILJMrQLWKUo7T/UVehFrLsVNaJmGXQEUba2SmHtI8CMpLI6OWjMW/nPFW9Nu3WaSgUbYGKL7o4TO/RCgel9Nq1s7xHOdpJhav3aLlR3Gg6JK9OBopHA9U3ArZPgM2fAZtztFJj380OHYCOHfWJJfVia1oHMZQEIWDYjJIpTh84eJlYNTfZmFo4eJnyKLtnk1fmHnE671BKXv5qo1WGYSiJkaTzOtXwHB5Tee9BAA8Y8sQBgDpJz/2ht2Qa02UMGpcLcLNuVhTTOPrmG+DMGaPbRzTQs6eee0Q5F7miK5v6K+Po3USHZBJw6xvA4kWUvQHSbcB6h6R/5rObRhEneoskJdC6iKEkCJagtOFhonTzUuOU+wOAtYZQz9NGSRWNptYXe5kO/QYsvCmruDi2DFCrr557VKyu7pv3U2PKoIH2J50z1Y3HtE95jb/RUG+4PrBnxKSUJNz1011It6fjloa3oH8r/tYB8h59951uIK100NGqU0c3jvr00QUdwxweacvYODgFmBEFpJpqGeeAXT8Cb481XEu0u6vpBpHpNeJXKYZR8CCGkiBYCp49rzSmscZ9KhNntgD4zJiaAcm3AufbAWWu0d9W9kq9DUipS/XcoyrdgcggVwb3BSlA3E9xsH1v06OcjwH40HiN9df7cvRwCBDUj3t0zqPYeWqnqm77pOsnBd9ihN6jSZN075GZTUzvUa9euoHUqZN4j+g9OgX8+ScwshywgYepeZitMw7Vb4DaDKXdleUxquHH6kjB/4ihJAiWhZJzgw2llWWGl+l74OB6YOl6ID4auHELYKsNRMcD3XbpydqCzinAdr0NJVYYooy8xhu5xwqbNYwk8tX6r/DNhm8QaYvE1F5TUbJQyYIdwLvvAkOHZj2mGrbpPWICTZhDh+wffwCffQb8/LPemk5VP1Ll41ug2jygSymgE71GzwNVHNogCsGPGEqCYHl4RWcydnvgQGdg6f26WGRUGpB2JRDDMq16YiQ5wsLC6wDbWhvsJewqohnRL0JX9bMY209sV94k8nKnl3FFNUcN5gLgtdeAl17S52+5BRg4UHeDSGwIe/cCn3+uT/sod8aUsRSgYUOgU02gzf+ALjcDFZjbJoQsYigJQrCw7wdgWV9AywCqdQXa/QdEbDWSbf5wohAephw1BCI3Alo5DSe/O4lSHdmDAZYjJT1FtShJTktGpxqd8Fx7PZG7QGA15IgRwKuv6o/5l63ew5wLF4AZM3Tv0e+/618TaypsbFlTEhj7BvB47UCPUihIxFAShGBg9zfA3/fpbUZq3ANcPgWIOGlYBBsMfSaeyZsFeqTWgArGFQHtdw3ppXKRMw4wz/7+LNYcWYPShUrj655fI9Kxf54/4dX/2WeBt3Xlb7zzDvA0CwbCF6phT56sp2gxD8nkskeBTe8D52J0sY7eYiSFHWIoCYLV2fcjsPxevc6m1v1A60+NhrSsPFoAoLOh9M2WKfONxIkwprzhYDtnCEdatNhvzvY5GPPPGDX/effPUblY5YIzkoYMAcayWIA1A2OBQWbHsfCCBtHUqbqB5NhbnW0/+vYFmj4M9Kuk70rtAPyat0iHEIKIoSQIVqfsFUDROroe0mUfAbaIHLICfxjdWVcYMnfzALRBWLHH6DB6h/G4kvHXDkty6Mwh3P/L/Wp+UOtB6Fq/a8FlJT/2GDBxov6Yf6mmHUbwK1iwQDeOpk83ErMBxMTo4uL9+gHXXAMsjdTztZON4PbsgtUdFSyEGEqCYHUKVQQ6LwdiSrlIsC1heJJuNKrjrjPufZkAHgbsMOxD9meLBmDBtmiOZNgzcO/P9+L4ueNoXr453rrurQL64Ay9ko3JN9yPaCnQbRIm7NsHTJmiJ2bvoWFt0KyZbhzdcw9QunSWYPsNRl82Brd/yZJrFcIQMZQEwYpseReIqwDUNHu0mb00XMHecHMBdDPCcdcb98DMXQphthpG0mEA7Ol7OSzP28vexp+7/0Th6MKqRQlblfgdtp2nUcT+bNRC+vJL3TIIcegt+uUX3SacP99IzGb4rDhw993AAw/oPdVy3n/UA9APwE4A040GtkL4IoaSIFiNja8B61/SQ2wlWwAlmrj5xnjDOOpheJhuMO6FmcMUgmwEcI2Rg9TEyGW3eLux5fuX46UFein+hzd8iPpl6vv/Q9PSdKPohx/05rVMyrntNoQy7NtL7xHtwpOseTBgxxV6j9iBpbATFxHtKJsxsakQu45Iwx9BDCVBsAq83V0/HNj0mv646UgPjCQTnv1nAriV6cIAuhr3xDSaQoi1RkzkhNEOb77Ra9jCnL5wWrUoydAycGeTO3F/Cz1Hye8uFbpOWO9OlW0aS927I1QPH/btffPN0li/PiuPr3Jl3ZnGvr3s4esKNgz6FsB3hnFEY0mMJIGIoSQIVjnLr30G2PKO/rjF20AjB6Vkj4gzjCP2hvsZQE/jElDAQob+Yr8RbmMJ92VG7noBC1l706Kk/6z+2Ju4FzVL1MTEmyb6v0XJhQuwMbb0229AbKyeuXwj89hC04P0+OPAkiU0kCIQHa2he3ebCq117gxE5qG6MBXAvUbuP7uQPF5QAxeCAgtKsAlCGBpJq4dkGUmtxubDSDLhvfA0owwsDTbbHYiLo6cpBKC6dl+jXnu+9Y0kMnnNZPyw+QdERUTh21u+RfE4PxeZnzuHkn36wEYjqVAhYNaskDSSTpzQi/guuYRGEjdVw9NPn8H+/Zpynt1wQ95G0hRqIxlGEncrXSNdELIQj5IgBJoDPwPbDE2byyYCdX1Vrs0SsK+V0WSzfYXixR+BptHbdB+CGjpi3jU6sxeC5dmcsBmDftN1il676jW0qeJn6YazZ2Hr2hWxixdDK1IEttmz9Ya2IQQL+D7+WBcSN3OQbr8deOstDXFxyShbtohb62H3RPNoGwBgvHgPBCfIPiEIgaZKT6D+YKDNZz40khzvhT6HpvWFzWaHzca8mM8QdDBR+xbDODKNpSAwki6kX1AtSs6nn8d1ta7D0Cvy6ynMg6Qk4PrrYVu4EPb4eGj0KIWYkUTPESvVHn1UN5KaNtV1kZifVK2a++sZ52Ak0Yz9SC6IggtkvxCEQGBPBzKMqz5zVVqNAWr7S9MmEpr2Mc6d6wObTTMKnycgaPgNwM1G2tV7CCqe/t/T2HBsA8oVKYcve36JiGxioX6Qmb7uOmDZMmglSuDU998DV4RIXhqAgwf1vPQOHfScpBIlgHHjgNWrPbcFjwB43pin6Up9dGkBLLhCQm+CUNDY04C/egPpycCV04HIgqitiUBS0igUKlQCNttYIxMjFcBgWBqmVd1mDJXFWkHUjmzG1hkYv5LBHOCLHl+gQnwF/33Y8eN61jL7cJQqBW3ePKRVYTJX8MPCvdGjgddfB5KT9fsK6ma+9hpQxstKxwpGTehCABRrECNJyA0xlAShIMlIBZbdqeclRUQDJ/8FyjIruSCwQdPeg83GPCWqQT/ByxCAYbAkPwK4y2hwS2PpGyPtKgjYn7gfD/zygJp/qu1TuL4OBUD9xLFjwLXXAhs2AGXLAn/8ATRurD8f5DUOc+YATzwB7KTyI/P32+leJCZve7w+Q5fU7G7TwZgEIS8k9CYIBQVDbUt6GUZSLHDljAI0kkx47zwKwHDj8TMAXoXlmGqoG9BIusd4HCRGEluU3DP9Hpy6cAqXVroUb1zzhv8+7PBhPe5EI6liRWDRIj1pJ8jZvh246Saga1fdSOKmUTxy6VLvjaRnKU0GYL0/BiyENGIoCUJBkH4OWNQNODQHiCwEdJoNVA5UuTaNpZGswTIe02h60bicWIDTAAbS4gDA3PMvgsv3/dri17Bk3xLEx8QrKYAYf4VW9+/XE3a2bAEYZqOR1LAhgpkzZ4BnngGaNNHln6iRycfbtuni4t5IT3GvHsLWMQBYILfcHwMXQpogOv0IQpCSdhZY1BU4thCIKgJ0nAOUZz/yQPOCIU7JxJ/XjTDc24HP2ChhJJB8byRvB9Ht3OK9i/HK4lfU/ISbJqBOqTr++SB2db36amD3bqB6db3sq2ZNBCt2O/DNN8CwYcARZlqzxfONwJgxQN26+VivYXObpQv86+u6UiH0EUNJEPzN2R16LlJUUeCq34CyVqpEesoQpxxkiBOlBq4GKAFAWWO+rTEFESfPn1QhN7tmx33N70PvZkZDY1+zY4duJNGjxJ4cf/7pWV28xVi1SlfVXm64eurU0Q0kht7yAx2S/Q0xDO7NnwLQs8YEwTOC6F5NEIIUNrbt9Ctw9e8WM5JMHjcaN8BoBfqIcS9egLxrtGxfjaCELUr6zeyHA0kHULdUXdXw1i9s3Qp07KgbSfXr6+G2IDWSEhL06rXLLtONpCJFgFGjgI0b828kMbXNVAzjRe5LMZKEfCAeJUHwBykngHMHgZLN9MflroS16W94lh4wjCZ6lj5RGkx+53UjRYrMBeBFsm6gmfDvBCUHEB0RrfKSisYW9f2H0IJgddvRo3pVG6vbypdHsJGeDkyYAAwfDpxmPhp0faS339Yb2PoC7r37jL2XdQC3+2a1QpgihpIg+JoLx4A/r9UNpWsWZBlLlud+w1hii5PPjZwlP2ZSM8t2hEPR3SsOKoBBxIajG/DkvCfV/FvXvoVWlVr5/kPWrtWNJDY3a94cmD9flwIIMphKNWiQbvORFi30cv/27X37OYUBzAaw0uifLAj5QUJvguBL7BnAguuB0xuAiBhdKymouBvAd4ZxNNXIYfITExyMpLcM5b8gpM+MPkjJSMGNdW/EE5dTm8rH0IN0zTW6kXTppXpOUpAZSezNRj0kplbRSCpVSvcq/fuvb42kgw7z9OmJkST4AjGUBMGX7PsBOLUGiC4BXLsIKB6M5dq3GsYSjA5Ye33/EecMhQIz9GZRzcu8OHr2KNYcWQMbbPis22eweVO/nhfvvpvV1Oz333UrI4g4exbo2RMYa/R9Zo+2//4DBgwAIn0Y2d0KoKbNhodKlECa71YrCGIoCYLP0OzAJsNF0uBJoBizk4MVdqC9xkiLfdP3q2cJEoWjaxjNtoIUGkmkfpn6KB9f3j8Zzx/RWOXP8CZQvDiCrT8bpZ5mzQLi4gC2nxs/3j+2Hu3tDJtN7bHB5scVrI3kKAmCr9j/E5C4GYguDtRnuX2wQyHKPwBMNpKHqvo2HYpepWrBfVVbfVgv02tZoaV/PoBNzs6d00NuN9yAYIJpVTffrBtL5coBv/wCXH65fz7rPyNQTIbQhRVkXjfB2ohHSRB85U3aaHiT6j8BxATXnb9z2AmLbdnTDCFKH1LM6CnBlCgEv0fpkop+KNVjTtKHhswAS8T8EdbzE+zRxtwjGkkUC//7b/8ZSaY3iYIWN2kamrGsThB8iBhKguAL7KlApRuBQpWABoMROpg94SgVcCj/q8uwTqcUX3qU/GIovf++nuDD0jC6ZoIEVrF16wYkJ+s56H/95V/RcPbL/dqYf5GddAXBx4ihJAi+IDIOaPEm0H0PEFMSoQM9Su0d2pvkk48BXArgfwh6Tl84jV2ndqn5FhVa+Hblp04BH3wQVN4kVrax9J8TW5L066f3ayvBljR+ZJRhf18PoLV/P0oIU8RQEgRfEnRyAHlhc/AqUYjSaMTlDSnGVY1OmO0IetYeWav+1ihRA6UK+TgnhiVi7BDLSrfu3WF16Pjq0UP3Jpl55598oje19SfnAfxmzJt7qSD4GjGUBCE/0NW/ciBwdBFCl2sBMMHkgtFrxEuoXbkfQEUADyLo8VvYLTFRb3ZGXnoJiLD2afrAAeDKK4HZs/XKth9+AJ55pmCcYIUMm/u74GsNKAQR1j4CBcHqHJ4L/DceWHgjkHoKoYnNkNA2VSJZ1+8hzAd/w5h/BkAcgh6/VbzRLUNjqVEj4BbKNFiXNWuANm30CjdWti1cCNxKGa4CpAiAOwr2I4UwQwwlQciPN2mDoZpY79EQy03KSRcAlxk1/aM9f/tXhm4lpYYeQkjgl4q3pCRdEiAIvEn0INGTdOiQbtP9849uNBUU6wq+dbMQplj3KBQEq3NkPnDiHyCyENDgaYQ2jrlKLFk/7v5b0436bRjikmzEFeScSzuHrce3+t6jRDVGJnLXrw/cdhusCvPMmTplVrYtWwbUoHhoAXHQSNxmCv3JgvtYIUwRQ0kQ8utNqjMAKBR8Xdw95yaaBQCSWbvu/tt+AcDiMLYnG4CQYP3R9bBrdlSIr4CKRZl05aOM6Pfe0+dffNG3/T18XNk2eLBe2fbggwVT2ZYT1l+mAqAPV6QlBX8jhpIgeMPRBcDxv4CIWKBREPfg8NqrNM79e/meAKYbETsmlIQAfknkZpdYikzWrQvceSesBovw6EUyK9veegv4+GP/V7bl5LChMkGk0k0oCKSFiSB4w0bTm9QfKOQjj0JQ0A1AM/pUWMPu0Nk2j9sxGkshhM8Tudmm5J139PkXXgCioixX2UbNy3Xr9Mq2r78OXJ75u0b9ZTsAVwdmCEKYIR4lQfAm7FbzfqB4I6BRkLa9z9cpw7yPp6F02vWiGUaULgTxeSL3xIl6A9xatYC7rdXXZfVqPUmbRpJZ2RYoI+mYUXcJYy+0vgynEAqIoSQInkKBmNp9gRs3AoWrIPyge6gxBX+Y1ut6sZ8AsHXFRwgpUjNSseHoBt95lM6fB942VM+ff77gY1m5MGtWYCvbcvKeITLJRO7OgRuGEGaIoSQI3hIEbSX8d9p4yZhnUnfSxYuwbvsVAAmeFcgFA5sTNiPNnoYScSWUKne+oYT10aNA9erAvffCKk5TioMzJ4lRwWuvLfjKtovGBOAfY168SUJBIoaSIHjCPw8COz4GMlhzE85QVbCBEXozOtw78jOATQCKARiEkMIxkduWX2P5wgU9K9r0JsXEINCkp+uVbU88oRtMDz0E/PprwVe25YTf9AIAfwK4MbBDEcIMMZQEwV2O/w3snAysfAw4TyWXcIal6y86BETOXOxNIoMBBPgCa+lE7s8+0+NaVasCffrAKpVtHxq2LyOCkyZZJxpIY+kq8SYJBYwYSoLgLhuMq3/N+4B4Jt+EOyxhr2fIBExwSGwxiuLiATyBkMNnidwpKcAodgkG8OyzQGwsrNCzjd4jVrb9+CMwdKg1IsyLnQd4BaFAEENJENzhxErg8G+ALRJo/HygR2Mhr9ILDkXbyXoiiakY8HjoqQFm2DOw9sha3xhKU6bo1kmlSsADDyCQbN+eVdlWvjywaJF12syxg2JXAEyP2hbowQhhiRhKguAOG1/V/9a4ByhaO9CjsRAsZa9lZG1PBFbR5WIISz6JkGP7ie2qfUnh6MKoW6qu9ytKTQXeMLoEP/OM7sIJEMePAzfeqEcAGzfWK9tas6zMInxgeJMqA8jHNy4IXiOGkiDkxcnVwMFZgC0CaGx6UAQdCiOa38k7wKXnAFbOfwKgDEI27NaiQgtERuSjxchXXwH79gEVKujZ0gGC0b+ePYGdO/WKtj//1IvvrAIFKMYY86yzlAuWEAgst9+NHz8eNWrUQFxcHNq0aYMVK1bkuvyYMWNQv359FCpUCFWrVsWQIUNwgZUkguBrb1L1u4BizMkRssOSdl5dj+oWUhMAdyEk8Ukid1oa8LrRJXjYMKBQIQQCVrSxV9vSpUDx4sCcObqgpJUYZ9RVNjLqLAUB4W4oTZs2DU8++SRGjBiB1atXo3nz5ujSpQuOHaMe68VMnToVzz77rFp+y5YtmDx5slrH8yyzFQRf0XAoUPF68Sa5JBrQngcOMDjCUvfQvVHxSSL3N98Au3frVsnDDyNQvPqq3oqEvXeZuE1BSStxxmgPCKO+0lIXKyGssNS+N3r0aDz00EPo27cvGjVqhIkTJ6Jw4cL4jCW0Tvjrr79wxRVX4O6771ZeqM6dO+Ouu+7K0wslCB5Rth1w1W9A8YaBHol1+b0vUGMP8BiNyckIRTRNy38zXIoUmd6kp58GChdGIJg6FRgxIqsXLwUlrcZ4I5GbPtzbAz0YIayxTOfF1NRUrFq1Cs8991zmcxEREbj22muxfPlyp+9p164dvv76a2UYtW7dGrt27cKvv/6Ke3NRt01JSVGTSVKSXnRqt9vVFC5wW3niD6dtJrLdfthuDbCNjIItwwZEp0HT3oOmsYorsOXuvt7u3ad24/SF04iOiEaD0g28W+fUqYjYsQNamTLQ6E3y036Y23ZTYbtvX9b82/D00xr69dP8NYx8cdBmU3fyz2ua0k1yZ4hyfIffdoeVoXT8+HFkZGSgPGtTHeDjrVu3On0PPUl8X/v27dVOkp6ejgEDBuQaehs1ahRGjry443lCQoIy1sJpB0tMTFTfGw3ScMGT7S62ZQi0qGJIrj4Q9piyCGb8+XvHLItBqWWloMVqsD/1BSJtB5CU9AHOn+8TUtu9cNdC9bdBqQY4fSKXZsCuyMhAmVdeURf/s/37I5m9QTgV4Hbv2ROJHj1KIzXVhuuvv4AhQ07DRWZDwKFv8s7ISFTPyFDNcN1Bzmvhtd2JiUz3DyNDyRsWLlyIN954Ax999JFK/N6xYwcGDx6MV199FS+9ZPaiyg49VsyDcvQoMQm8bNmyKBFojf4CPrDYfoHbHU4HltvbnbgFtsPTYIOGQo0GACUtluVqod/bNs5QJHwQsFXuq+S4ixX7CEWLUpY7JmS2e9emXepv66qtUc6brOfvvkPEzp3QSpVCkWHDUKRoURTkdp86Bdx/vw0nT9rQqpWG77+PQZEi1t6vPR2dnNfCa7tjCqjlj2UMpTJlyiAyMhJH2RzSAT6uwBJaJ9AYYpjtQZZuAGjatCmSk5PRv39/vPDCC053mNjYWDXlhMuG0w5GeGDJdrtgCxWTNaBKD0SU9kGrilD9vRcZUwxge9YGWwRL3UfBZtsHm+1r3XoKke12TOT2eF0MERi5SbYhQ2BjmVkBbjed5bfdBmzbBlSpAsyaZUPRohaQ3HbCPEOZy1vNJDmvhc92RxTQtkZYyTJs1aoV/vjjj2xWMh+3bdvW6XvOnTt30RdFY4vQBSkIXpG0Hdj7rT7fxLlnUjAwlBPAlKQqnGGp+zPGkxRUTEOokK+Kt59+AjZv1uvwH6dkecHBU+EjjwALFgDx8boMQMWKsCTnAdxvtFtm81tBsAKWMZQIQ2KffPIJvvjiC1Xu/8gjjygPEavgyH333Zct2btr166YMGECvvvuO+zevRvz589XXiY+bxpMguAxm94ANDtQ6WagVD7bVIQy7Au8wvBLP+v4Qn8jaLKbtfAIBQ6fOYwjZ48gwhaBZuWbee5NYi0+eeIJ3VgqQNjYloXDvKecNg1o5uHwC5JPARwxbO72gR6MIFgt9EbuuOMOlVQ9fPhwHDlyBC1atMDcuXMzE7z37duXzYP04osvKncj/x48eFDFZ2kkvW6W3wqCp5zZCexhyIix3OGBHo21oWzSXqNjaTY1Z5a8DzWm1wD0ttqpxmtvUoMyDVT7Eo/45RdgwwagWDFgMPO2Cg7qI7HfLhk7Vm9VYlWovvWmMf9cwLPbBCELy529Bg4cqCZXyduOREVFKbFJToLgEza/BWgZQMUbgNKXBXo01qckgO7OXhhgiE/uBMAwpmvJjmDAa/0kxr1eeUWfHzQIKMkvrGBYsyYaffrYMj/axWnVMnwO4JDhTdJjCIJgDSwVehOEgNP0ZaD+YPEm5QUdLLmmAcYDeMqYp1cpA2HZumTWLGDtWj05iGG3AmLvXqBPnxK4cMGGm26imC8sDZXtWD5BnrWEApcgZCGGkiA4UrgS0GoMUObyQI/EuqyiawVAx7xytR8DUArAdgDfI+wSuR29SXTnlC6NgoDSMt262ZCQEInmzTV8+63epsTKfAFgPwDmmPcL9GAEIQdiKAkCsQe3x6NAMa79qKG3eXMNdYJMzTImMwenavDJ8yex5/QeNd+iQgv33/jbb8CqVXqbEgftNn/CDil33AFs3GhD+fIZ+OUXDX6Ua/IZPPpKGPWScYEejCDkQAwlQSCrBgELbwJOrQ/0SKwNHSszVfcLXTo5TwYal8AtTC1GMLLmsO5NqlWyFkrElfDcm/TYY0BZ/yu78yOZizRvHm0zDV98cQpVqyIoeMSoC2C9pCBYDTGUBOHcAWDnp8ChX4HUk4EejbVhuhG5E0B9d97AUvgngtqr5FXYbf584J9/gEKFgKfMXC3/wqo2Nri12YCvvtLQvHk6golihgqXIFgNMZQEYfPbgD0VKNcBKN8p0KOxLhsATDe8SS968sZBxmVwI4AZCPlEbrp2zH6SAwawYSX8zcyZWdG9d94BevRAUPAbgF/zqgsQhAAjhpIQ3pw/DOz4WJ9vIpVubnmTbgPQyJM3ljSMJfJK0F0WPfYo/fkn8Ndf7JcEDKWWlH9ZvRq46y7dPnv44QJLh8o39HdRVeomAJ8FejCCkAtiKAnhzeZ3AHsKUKYdUP7qQI/Gupw3PErw1JtkMsSQDFjHmnkEC2dTz2Lb8W2eeZTM3KT+/f3eK+TgQXYoYDsn4LrrgHHj9NBbMDANwH8AWAt4R6AHIwi5IIaSEL6cPwrsmKjPNx0RPFeYQFDIMJTYALepNyugTMDjQedVWndkHTRoqFS0EsrHuxFCW7QIWLyYzSuBZ8yed/7h7FndSDp0CGjUCPjhByA61ypEa1W5mQ7KJw0TWhCsihhKQvjy3wQg4zxQug1Q4bpAj8b6UIunQ35WwEtiEUOIiZkpIRh2M71JDz4IVGaPF/+QkQHcfTfVt4Fy5fRGtwXcQi5fsP5xq1EPaXHBcEEQQ0kIYxo/B1w2AWgxSrxJuTHfaMSVb8oAeDSovEqZrUsquGEoLV2q5yfRreNnb9LTT+ui33Fxeiu5GtS0ChJY9/iqQ0CWaf6CYGXEUBLCl8hYoC6rkq4K9EisC5NIrgdQB8ApX6zwKSOOtwLA/xA0FW8VW7rvTerbF6hWzW9j+ugjYMwYff6LL4DLg0xEnoWTmwzhCDPFXxCsjBhKQvjBcJs9uDRmAsYbhguAgtQ+6eda3miYS0Za2quUkp6CTQmb3Au9LV+uaydFRQHPPee3Mc2dq4tKktdfB26/HUEHPUhNjIo3N+U7BSGgiKEkhB3xez+A7bcmwME5gR6KtdkF4Ctj/iVfrnio0ahiOWvpYVU2HtuIdHs6ShUqharF8pC4ftUIJvXp47c42IYNumHE/KT77/erPeZXOhu1j0E6fCEMEUNJCC9ST6Hw/smwnflPF5kUXDPKKE/qAqCNL1dc0aFZhdk4ztqJ3LbccthWrtT7urHzrJ+slyNHgJtvBs6cATp1AiZNCu60Ol54pKebECyIoSSEF9vHISLjDLTiTYEq3QM9GuvCxltTjPkR/viAYQBiACwGsBBBnchtepN69wZq1/b5OFJSgO7dgX37gHr1gJ9+0tUHgo3fAbzPjkGBHoggeIgYSkL4oGmw7ZyszzZ6FrDJ7u+SLw3pZOa5t/XHB7B0/gFjXv9NgjKR+/BhYPZsff755/0yjhEjgBUrgFKldBkA/g1GPjQEIuioFIRgQq4UQvhw8l/Yzh+APbIwUCVImmEFip3G33v9+SG9jb9U6rZWGJS5SeuPrs87kZu1+ewd0qaN7u7xMeyEwt5tZPJkoA6rD4OQswDmOXTAEYRgQgwlIXzY/7P6k1L6GiBSMiRyhWG3/QBu9eeH0FVVAUAigAWwEmxbcj79POJj4lGnVC7WyXQWuwPo1cvnY0hO1nPD7XbgvvuCp9GtM+YaUly1vRV2F4QAIoaSEB7wrn//T2o2peyNgR5NcFAFQFF/n37MPDHdiLVaIneLCi0Q4SpEe+oUsMAw8Hr29PkYmBe+Y4cu8D12LIIa89fltxTEOehCmCKGkhA+tPoAWu3+ukdJcE1yQX6Y6YmZYZTYBVEiN3OT0tOBJk2AunV9+vkU+GaDW/LZZ0CJIBYcSuFXZcz73u8mCP5HDCUhPGAtdaUu0C6bAC3Kr26S4OaI0c79hoJKG+pkyA4eNXSVgiiR209ht6QkXdybDBgAdKbwUBBDpawkQxTCpyoTglBAiKEkCEIWvxgugJNG9b7f4Yd0NeYNwyPA2DV73s1wmUBEmWw/GEpPPqlLAdSsmZXIHcxsNvopM+wmFxwhGJH9Vgh9kvcCa4YCx/8O9Eisz/RAxEh6Onx44Fua7D61G0kpSYiNjEXDMg2dL0Qj6cIF3Zpp1sxnn83yf1a30QE6ZQoQH4+g5ynDX/hCoAciCF4ihpIQ+uyfDmx5F1grTRNy5bRDRxHf5ybnQhejUS5VLtfCKmG3puWbIjoy2vlCP/+c5U3ykUT2iRPAgw/q8088AXTogJCB0dxKgR6EIHiJGEpCeBhKpKqkkubKbENksjEA30sC5UJhIynKGuG3zLCbq0Tu1FRg1iyfh90ef1xvVVK/vt7wNhQ4H+gBCIIPEENJCG3OHwUSlunzIjJpwbAbcnzodOsncrMkjRnXFSoAl1/uk8/84Qfg22+BiAjgyy+BQnSwBTkMojYCcIWDfqkgBCNiKAmhzUFmJ2tAqcuAInl0gA93SYC5gTSUbgIQbaT+bkOg0DQtSxrAVSK3We1G7SRaNvnk6FHgkUeytJNat0ZIwG9xjxFMlbCbEMyIoSSENhJ2c//2nxVWdwNoHogBUCLg6oCLTx46cwgJ5xIQaYtE03JONKQzMvS2JT4SmaQOav/+en4Sc8KHD0fIYPoGKe8aAg4yIYwRQ0kIXVJPA0f+0OerFmh2cvDB6qrHAHwTSOnkwIffTG9Sw7INUSi6kPPma8eO6QqQnagBlT+++gqYOROIjtZDbjEFIskQBpFcQfAhYigJoUvSdiC2NFC8EVCsfqBHI+RJd8NKWwlgX0BGkKd+khl269ZNt27ywf79wKBB+vzLLwPNA+LJ8w9bAGw1gqnSMEgIdsRQEkKXMq2BHgeBq8y+5YJTaJdMMlS5A0p5AO0dWppYrHUJ42Q+UuPmqvr1AxIT9ZykYcMQUpjB02sBFA/wWAQhv4ihJIQ2EZFAYXZ3FVzyKXtlABgJCxDY8FuuFW+rV+uS2YUL57uvyKRJwPz5QFwc8MUXQFQUQgoJuwmhhBhKQujmJ2n2QI/C+mQ4OG8scVUzJRyWAEgo0E8+fu449iftV/MtKrRwLTJ5ww35qt/ftQt4+ml9ftQooEEDhFxdwGDjl+wW6MEIgg8QQ0kITf59HPi5MrDvx0CPxNr8BeCYUXSW/9xkH1CDgS92XAMws0A/ec1hPT+pTqk6KBZb7OIFfBB2s9uB++/XW8V17JiVoxRKMMvsXiP8Vi7QgxEEHyCGkhB6ZKQCB2cBF44AhdizXMgzmYR9afOXmxz04bdcE7m3bNEnJnDfRM0n7xg7FliyBChSBPj8c5/IMAmC4GfkMBVCj2MLgbREIK4CUKZtoEdj7RiJJZNJzMH8ztJFayRym2G3a64BinuXnkw7i4KSZPRovZ9uqHHMkOPaEeiBCIIPEUNJCF2RySrdAZvs4i5ZY/ShZau1/OUm+5iGACjnkArgV2skcjs2wfWC9HSgTx8gJQXo0gV46CGEJJTiZAHfnYEeiCD4ELmKCKGFPQM4YGQnixp33oZSJIDrDWPJUhRs+C0pJQn/nfxPzbeskMNQYqXbv/8CNhvQnVpPnvPWW8DKlbpO5eTJ+qpCOZJ7S4DHIQi+RAwlIbQ4vhy4cBSILgGUs0R2snXpx0ZjRqwEVjWUfi2QHvTrjqxTf6sWq4qyRco69yZdeSVQzvP05LVrgZGG9MK4cUDlyghJEo1gKREdfCGUEENJCM2wW+WuQGQI9YPwF6UB1IIFaUWzxejWOz+wYbd8VLsx1MaQW1qa3hrunnsQsswBkGYETkNM8UAIc8RQEkKLmvcADZ8Gat0X6JFYmxRYHFuBht8yK95yJnKzrxvL1EgPU+PJfV55BVi/HihTBpg4MXRDbrBqXYAg+IAQ04MVwp5SrfRJyJ0OxtE/EUBTWBQGcMYCmGX4KqIL3qPEjrXsN9KqFVC9ukfr/Ocf4M03s5S4vYjaBQ3nAPxmzIuhJIQa4lEShHCD/WZXAFhutFezLOz7xnyhkwAW++1TLqRfwOaEzc41lLwMu507B9x3ny4wyXBbPlvDWZ4NhtoETUknwUtBCGrEUBJCh/XDgUPzADu9D4JLZjjYIZb2crAkr7vfw28bjm5AhpaBsoXLonJRh0xrdqz93UhP9tDSeeEFYPt2oFIlPYE71GnDOgrD9xfC0UUhTBFDSQgNkrYBG18FFt0MpDMBWAiNZBJzkKw8s/s97GZzTCKaM0fPwmYzNg8asi1cCIwZo89/+ilQsiTCgsJWjuIKQj4QQ0kIDfYbJdwVrgFi2LhMcCmdvCSYarivBlAUwGFm/RRsIrcXIpNnzgB9++rzFJVk/9xQR/y3QqgjhpIQWrIAIjKZOzMNxwzz3T3LTQ4QsQBuziFn6KfWJY75SefPA7/+6rGh9PTTwJ49QI0awHvvISwYZHiSGHYThFBEDCUh+EneD5xcqWdHVPZOOTlcsM2wBZE3ycRRJoApw74jLSMN64+uv7ji7X//0zOyq1UDLnHS+80Jc+cCH3+sz7PhbVE6wkKcDMN83QhAVMuEUEXkAYTgx2xZUrY9UMjSZVwBR+utwRZrC5L8JBP2WIkDsNOor2rmszVvPb4VKRkpKBZbDLVK1nJe7eaG+NGpU0C/foaHZRDQKUxE4f82xN3ZJviqQA9GEPyEeJSEEAq7BZWbJDDcabgAKJ8cNMQD6OKX6jcz7NaiQgtEmA2UmcBN/SRCOW03oHF06BBQty4wahTCBjMYyuCoeJSEUEUMJSG4yUgBzh/S56uIoRS69PRLnpLTRO5Fi4DTp4GyZYErrshzHXQ+ff01EBEBfPEFUNhyDYb9gxZsBZSC4CViKAnBTWQscPNWfYqvEejRWJfzQOEJhfXoVVDS1dBVYj7RDv8mcpthN7YsieRn5h5ye+QRfX7YMKBtW4QNbCO8G0AhB3+fIIQiXucorVu3DsuWLcPmzZtx/PhxpT9SpkwZNGzYEO3atUOLFi18O1JBcAVzSIrVD/QorM18oNgrxaBN0YA9wagKWMrIgvnd8CoNzfca7Zo906OUmchNKW0PZAFeeklvB0eZpZdfRlhh+vZoJBUJ8FgEwTKG0rFjx/DRRx/hyy+/xN69e6FpGmJiYlCyZEk1f/r0aaSmpiqjqVq1aujTpw8eeeQRlC8vCbaCH8hI1QMA9CoJuWL72bCMegSjkWTSyzCUpvvEUNp5cifOpp5FXFQcGpQxBCX//hs4cgQoVgy4mhpOrlm9GpgwQZ8fPx6IDbPdsJPhUeoW6IEIglVCb8888wxq1aqFjz/+GDfffDNmzJiBAwcO4MKFCzh8+DCOHDmi5vkcX+Myn3zyCWrXro3nnnvOv1shhG8S9/RywFrZv/JUBDREbrSevi2vL1i6O9RaHfRZ2K1Z+WaIijDuGU1v0s03AzGu05PpeHr0Uf3vnXfmaVOFJPTvfQng1kAPRBCsYigtXrwYX3/9NQ4ePIgPPvgAXbt2RSU2MsoBn+Nr48aNU0YT37OIyZFuMn78eNSoUQNxcXFo06YNVqxg907X0Iv12GOPoWLFioiNjUW9evXwqykUJ4Q2B6YDaUnB7CIpGBYDtlM2ZJTOAPLOTbYwPN+YSUC/+D6RW9PcboJLnaR//gHi44F33833UARBCAVDafny5ejRo0f2Xkh5wGX5nr/++sut5adNm4Ynn3wSI0aMwOrVq9G8eXN06dJFhfycwTDfddddhz179uDHH3/Etm3blBercmWHxpZCaJJ+HjhkGMQiC5A7xrU/pUuKng8d1DiKT+aPixK5168Hdu0C4uKA66nd5JyTJ+lh1+eZlxSOpxtGHNf6XP5TEKyJpareRo8ejYceegh9+/ZFo0aNMHHiRBQuXBifffaZ0+X5/MmTJ1Wo74orrlCeqI4dOyoDSwhxjvyuN78tXAUodWmgR2Nd2K7EiCZduPECgh/TKF4I4ITXa2FOpWMzXIXpTaKRVMR1evILLwAnTgCNG+v6SeHGAQCP0sA0xCYFIdTxuuqNeUevvPIKoqOjnb7OnCUaPbNmudcBiN6hVatWZctnioiIwLXXXqu8Wc6YOXMm2rZtq0Jvv/zyC8qWLYu7775b5VNFuijrTUlJUZNJUhJDN8w1sKspXOC28mIRrNts2/+TCrhpVXqq7VBhkzDYbo/ZDthOsyoQSLkiJQS2uyZstuaw2dbBbmf47X6vfu/9iftx4vwJlZvUqEwj9bpt+nS1T9m7d9eTj5ywciUwaRKXsmHcOLtSD7DiV+rP/VzZ3RERaKdpKMfPgHUIu+PbIJy329KG0jvvvIM5c+bgiy++QMuWDj2SQPG1rzF48GCPNoISAxkZGRdVyPHx1q1bnb5n165d+PPPP3HPPfeovKQdO3bg0UcfRVpamgrfOWPUqFEYOXLkRc8nJCQoYy1c4G+TmJioDi4apEGFPQ3l9s9UF7WTRTohzUVoNuS22xtKALaNNkRsicDp86ehHQv+7S5S5DoULboOqanTcPr0jV793gv2LFB/65esj6STSUjetRZlN26EFhWFhDZtoDnZpzIygIcfLg1Ni0avXufRsGGikgawIv7cz6eVLKlK/K49cwbH2A/PQoTd8R3m252YmGhtQ2nhwoW4//77cfnll+P555/Hiy++iBMnTuDhhx9W3h3mDk2ePBn+3jnKlSunKvHoQWrVqpVKNqcR58pQoseKeVCOHqWqVasqb1SJEiUQLqg7aJtNbXfQHVhH/kBE+ilosWVRsm5XICIyPLY7H9ir2ZGekB4i290bwLuIjV2EcuUKGy1OPPu9d23epf5eWuVSdQ5RktqkUyeUre9ck4sNb9eti0CxYho++CBWf59F8dd+fpz5qkae6r3x8SjHbHYLEbbHd5hud0wulamWMJTat2+P9evXY9iwYXj11Vcxffp0HDp0SIW1mFvUv39/j9ZHsUoaO0ePZo9683GFChWcvoeVbgz9OYbZKHjJsB+9Q86+RFbGccoJd65w2sEID6yg3O7i9YGmr8AWEQlblPPQb0hutzet3SNDcbvZFLcObLYdsNnmAbgt16Wdbffao0xFBlpVbKU/b8gC2G65BTYn38/x43puEnnlFRsqV7Z+paU/fu85Rtob5YRrW3Q/Cp393DPCcbsjCmhb8/UpTLRmnhI9ORs2bFCJ1fQueWokERo1XM8ff/yRzUrmY+YhOYMJ3Ay3OYb4tm/frgyogrI0hQBQpBrQ9CWg8fOBHom1edWwKaYhxLDlu/otWyL3wYN6rT89JcxPcgJTJ1nt1rQp8NhjCFukt5sQjuTLUJo9ezaaNGmCLVu2qHDXNddcgxdeeAF33HGHCsN5CkNiLO9n3hPXSVXv5ORkVQVH7rvvvmzJ3nydxhnzoWggMWfqjTfeUMndghD28Kq2gRUMCEF6Ovg4PNvAY8nHcPDMQdhgQ/PyzYEZM/QXeENWseJFy1Os+9NP9fmPPgKivPbDB79u6SpjXgwlIZzw2lBiflL37t1Rp04drF27Fk899RT+97//KcHI3377DY0bN1a5Sp5AA+vdd9/F8OHDVa84rnfu3LmZCd779u1TKuAmzC2aN28eVq5ciWbNmmHQoEHKaHr22We93SzB6uz5Ftj3A5B2NtAjsTY7DCOJobebEYK0NgQozwDI8kK7w5rDutBkvdL1UDS2aK4ik0zgNu+7+vRhygHCFga59wKgfHCjQA9GEAoQr++Nvv/+e7z99tvKC+QoQjlgwAAlEvnAAw+gV69eqpLNEwYOHKgmVwnkOWFY7m/e8gmhDyUA1r8EnN0JtP8BqCbNE/LsWHqV0U/WHor3ePQqjTdcZ7lXv7kMuzH5yOwc0PNi4dJJk/SebsWLA2+95bvRB7Ox1CHQgxCEYDGUqJzdgC2znVCzZk0sWLBAtTERBJ9xeoNuJEXGARVdKycL4ZJM0sswlOi5nuj26Sxb6xLqvPFmjiK1tWplW46l/2YC92uvUaoEYQvtbF09ShDCD69Db66MJEcef/xxb1cvCM6b4JKKXYBoa5UlWwr2izWdrM5zk0OEDoa7jEXrS71rXZJL2I1tSk6fBigT98gjCGvYLKgmgDcCPRBBsHqvN2/Jz3sFIZMDRjypivR2yxUzNZDFohf3rQ4h6EHq5lH1W+KFROw8tVPNt4yvA8yf79RQWrYMmDJFnx8/HkqBO5yZbuQnHQn0QATByobS1VdfjauuukrlJp1zQ4317NmzmDp1Kjp06KCq4QQhX5zZAZxeD9gigcpdAz0aa8NWh/eyTBRhgGng0IjOu43N2iO6flL14tVRauE/7GkE1K2rN24zSE/PSuB+4AG9GC6cSWe7qHCI5ApCfnOUWH5PzaR7771XiTy2adMGl1xyicpHKlmypJJOP3XqFHbv3o1///0XK1asQHp6uirp/+abb9z9GEFwzn7Dm1T+KiCW4RbBJVcYU1hwHYW1jFat/wK4zP1Ebsewm0NByoQJVOAG2KnjzTf9O/pgYInRfrg0hYYDPRhBsLKhxFJ8ahyxV9pXX32lSv8/+ugjnD9/PttyhQoVwqWXXorXXntNGVWUVBeEfJO0Wf8rYTchG3EAbmIdrhEgusy9RO4yzYA5oy+qdjtyBHjxRX3+jTcAOX1lBTWZ7hamElJCmOPxfs9WI0OGDFETPUbUNjLFJUuXLo1q1aohKlwV2QT/cfnnQJPhQEz49OPziq8BNDZ6TIRNiVJPB0PpjVw3PDOR+4iN+QFA5crAZVnG1bBh7P8ItGoFPPRQgQze8tVuptKEhN2EcCVfFg0Nolq1aqlJEPxOPOtuBJdQe/FBQ6h6o2EwhQXUUGLLou0AtriUQzyXdg5bjvN1oOWibVneJKNf1OLFwFdf6VE4KnCHewI3jGAmiyhZYyqZpkK4Ej7d84TgJSMke3D4nrmGkVQn3KSTixm5SrlXv204ugF2zY7yRcqj4vT/Zat2S0vLSuCmJ6k1hb8F0H/Lr+UBI8gpCOGI2x4lJm07KnC7A5ffuVMvxRUEr0g5AfxSQ0/ibv+9LjYp5C0yGTZhNzhs9BzjSzCSjFyF3WKqw3ZiBXMFgCuvVM99+CGwcSNQqpSemyTo1ON3E+hBCEKwGEodO3a8yFBiddumTZvQqFEj1K9fXz23bds2bN68WTXLbcVAvyDkh4OzgfSzQPJeMZJy4wK7VIdzMkk3w0HOZO3dhjyii4q3g0ZbpW7dVIfbQ4eAESP0p1jlRvtJEATBY0Npiqm+ZjBjxgw1zZ8//yKdJD53++2349VXX3V39YKQuxp31bC8+rsP+8KyT3DlPAu/QpQyhlL3QiP9+EnXFW/LdmcLuz39NHDmjB5u69evYEdtZeaxitlQmpB0LSGc8TpHafjw4apFiTMxyeuuu041tn3RrLMVBG9IOwsc5ulaDCW3w249wznz0FF8MjtpGWnYcGyDmm+5+SQQHw9cey0WLAC+/TYrgdvI6xbYwoWRBACigieEO16fFv777z8lB+AKvib5SUK+OPwbYE8B2GqieJNAj8a6aA6tzsLanuxh/F12UbONzQmbkZqRiuJaLGqeovTSTUiLjMtM4B4wQJcEEHR2AVhneJJYUygI4YzXhlLt2rXx+eefq1YlOTlz5gw+++wzkQ0QfKPGXbVnNuVkIQc2Qw6Abcv03OQwpSqA1oblaDa801l9xEjkPhqh57n37ImxY4EtW6gNB7z+emBGbFVMn1xHI6gpCOGM1zpKVN6+9dZb0aBBA9x///2oU6dOpqfpiy++wNGjR/HDDz/4cqxCuEkCMJGbSNgtb6IBXBvoQVgB7isrjFjkwxflJ7XcdR6IicHB5jfiZSMf6e239XYlgvMCSkEId7w2lHr06IFff/0VzzzzDN7IUU/bokULTJ48GV26dPHFGIVwREsHmr0CHFsElBZRG5eYfWDF4eaQpPUsgD8BMMZWPFsz3EsOA+jcGU+OKIrkZL3hbZ8+AR6yxeBX9FeOYKYghDP5Uubu3Lmzmo4cOYK9e/eq56pXr44KFSr4anxCuBJVBGjwhD4JuUsn3wbgXgBSZGoo/1CSfJOhq3Q3MuwZ2QylTZ174fv39MRtSeC+GDNo2cYoohSEcMcnTdloGIlxJAgBipHsNbp3CA4Bo03Gl3M3diXuQnJaMgqnAnVP2dB+Rle1FBO5W7AnnpCNRcZfCbsJgoeG0pdffqn+3nvvvUp40nycF/fdd5+7HyEIOqfWASdXAZW7AXGSSppr2O0nY16uag70Mtxr7OmSjI0nmOkOND8KHKzeCf/sLINy5YBXXgn0OK0J5QCGGKnxgiB4YCgxYZsG0p133omYmBj1OC+4vBhKgsfs/AzY/gFQ637g8s8DPRrrspnVE0Y/WKnhdqA5gBoA9ijZxA0Jhn7SYWDsft2ifOcdoAQbmQkXwUikZAUKgheG0u7dupotjSTHx4LgUzQNOGDU3FQRN4lbNdzsB1s0wGOxFMxs574zGjbbDGw8vCMzP2lEWg+0b0/PeKDHaF0npdQFCIKXhhKTtHN7LAg+4eS/wLkDejJ3RbMjvOAUqeHOBd1QYgO8rSdS1DPRhxvjSGQV/DpeZLmckQygkWF3fwCgcKAHJAihlMzNJriOVW9skisI+ertVukmaYKbG3TorjHiJOwHK+SgLctMYLMdQcuawILtwPqEu/D440CzZoEemzVhRtc+AAuMHm+CIPjAUPrll1/w5JNPYs8e5gJkUbNmTYwePRrd2J1bEDwJu5mGUhXq4QguoUeE7TdOinSycyIMFaCJ6NUQSFgKLC95G34bGehxBYeDUhxuguADQ4lik7fccovyIFFwsmHDhur5LVu24OOPP0avXr0we/ZsXH/99QgGUlNToWmaSkAnGRkZaoqIiEBUVFS25Uh0dLRPl01LS1Ofz+f4GrHb7UhPT1fv5Tp8uSzHxuUd8WS9fI6vRUZGqsnTZfk5/DzHvDckbUF64k7YI4ogskKXzI7lTpd1Y73OvnfzsTvLBvK3z3PZalGI+ND9397En/tUvn57vyxLY3siutaOxO8JJdBjTG0UK2at396f5whOfN2dZVM0DXP4WRER6lvz12/v7/2EzzvizTnCk2Wtco4wn/NmPwn0sun5/O0tbSi9+uqraNasGZYsWYIiRYpkPk8v0sCBA9G+fXuMHDkyaAyl999/Hy+++GLmtixbtgwLFixAy5Yts3nG3n33XfUDDh48GCWMspmVK1di3rx5aNq0qTIQTcaOHYtz587hkUceQTnWI1MheO1aZUDWr19fVRCajB8/HomJiXjwwQdRubIu87Zx40b8/PPPqmceZRlMPvnkEyQkJKBPnz6oUYPVPcD27dsxbdo0VK1aFQ888EDmslOmTMGhQ4dw1113oV69epmJ+F9//bVqXPzoo49mLvvNN9+oECpb0zRuTNE+4MCBA6qnX6lSpfA44xYG33//vWpX0717d6XETo4dO4ZJkyahaNGiytNowm1gePaGG25A69Z6Pc3Jkyfx4YcfIjY2Fs8+SyVlACdWYHZCV6xLaoFrV23GFVdckdk7kL8PD7iXXnopc738zv/991907NgRnTp1Us+lpKTgrbfeUvP8Pc2D6Y8//sDy5cvRtm1btd8SHnCjRo1S81SYj4vTQ33cpxctWoRLL70UN910U+bncb18z5AhQ1DMuOL+/fff+P3339G8eXOlVm9CjyrHwmPBbB69atUq/Pbbbyo0fdttVInUGTdunNrGhx9+OFOPbMOGDcpjW7duXdx9992Zy06cOFF9d3379kW1atUyb05+/PFHddPiWI1KdXy2Eurdu7fy8hI2qv7uu+9QqVIlPPTQQ5nLfvXVV9i/fz/uuOMO1ZaI7Nu3T7UjKlu2bLb9hO/ftWsXevbsmfldHj58GJ9++imKFy+OJ57IEgnluLZt24abb74ZrYyus9x3J0yYgMKFC2Po0KGZy86cOVNtNxX9L7/8cvUcjwkeRzyxPv/889lu1NasWYOrrroKHTp0UM/xWOPxSUaMGAGgE5KSbVj/93Vo0uxyVKiwEMA16nUew+Zv/9xzz2WejBcuXIilS5eiTZs22c5d5rJPP/10UJwj+FscP35cPWf23MzrHFHurrtQqF49XO5wjihfvjwGsGOwVc4RzDqbPRvr1q3Dtdde6/Qc4bhfe3uOoJByMJ0jHPcTb88R7N9KduzYgW+//TZozhEFgdeatOvXr1cXakcjyYTP8cfgMoLgNpQDqHZHoEcRHFBoOiPQg7A2c39Kw7wtZo8XwR3oTRKhckHIjk2jj8sLaAHTEqbXyBm8o+PdwIkTJ2BlkpKSlIVLq5pWcTiF3njHybsG83mru9V9FXrjPsm7d84Hg1v9omW7aYiaF4WIdyKAp9wPvfFuvkyZMmr5YHGre7tsRkYMHmn4KU6/+RB+vDUS6enVER29DZGRUZYKqfjrHEFPBX/vihUrZq7D1bIX0tJQS9NwNCoKcyMiVNVbMIfeTp8+rY5vji+cQm/8vbndfC7Q4bS0AjpH8LcuWbKk8rSaHjxLGUp0C86fP1+5CemqdOSff/5Rbmu6L+nqDQZD6dSpU5lu8nCAO5t5YDnGtwM3oHQgIir8tttTTgMoyzMGgG1Ga7Nw2G4P4f3b2a+vwvj7F+LEUKCQOteuopoSwgFPfu+zAN4w2ggv4YUbwUu47efhvt2nC8hQ8vrK9PbbbysDiblIjCkznk4Ya1yxYoX6wcw4sCDkyZ/X6n9bjQVKUllZcMpsw0hq7L6RFG7s2gW8+0YqnmizHOfTgXX7yuDyOscNhc7wMJQ8Id4wlARBcI7XpieTQ5mDNGjQIOWNoeeIE+eZxMhkOzPRWBBy5fxR4Nhi4NgiIKZUoEdjbURkMlfoHx80CLgi9U9srqgLTR5Mbp/jyxMEQXCffMU66DVipQEnQfCag7/ozRNKXQYUkVacuUonUxWQiKHklFmzgDlzgE9s0/FGRf25aK0nNG0ObDY2x9sKQK/YEYCdrIgCQH+uyLsKgnPCJ5gpWBdTZLKqXP1zZR69b3TnGn1fhWycO6d7kyKQgS4lpmN3Sf35eiVZbn51jgZ5AvkMQFcAWWIBgiD41KNEPQ1qKFAvgSG3nHnhzG6nzoMguCT1NHDkD31eDKXcMb4mkU52zptv8pwE3FLuL+worFfb1ixeAyViS0DTesBmo6VJo/y5QA/VMpjBSBpLgiD42FCiIBV1lFiux2oxVo7lxFEFWRCccnAOoKUDxRsBxSQ7OVfGAegjLUuc8d9/FPvT50ddNh0z2doFQMuKZvJ2dwAUxPvX6GimC/GFM1uMQCSr3G4M9GAEIRQNJarZUp2Tqpqm4rMgeMwBs7ebeJPcCpTrosWCA3RkUxCasjSdr9NQZ8N0rL5Uf61lhZbGUuUBtDcK4GcAGIRwxwxCMj/p4ttcQRDynaNEsUJK24uRJOQLGkiVbgKq3RLokVgbEZh2yYwZbFVBYTrgk0dWw7ZvH9ZU0r3ZLSuahhIxjXGpfiNSQCkIfjaU2AuJfV4EIV/UvAfoNBsoqfeCEpzAViVsl9SPdyiBHoy1SE4GBg/W59kSqtqqn5EcDWwtrVuWl1Rw1E0y+2zRq3QM4cxeQ36TF4CsLnWCIPjUUBozZoxqmsjQmyAIfmQ5u58aLgD/ic8GJa+/DuzfD1SvDqieudOnY10FQLMBFeMronw8Q24m1HWj4cQO8zMRzvxu/L2SMi8BHosghGyOErtgv/7666prMZvgVqlSJbNPi2MyN4UnBeEiMlKBHZOAKt2BIpJY63ZpUlbbo7Bn2zbg3Xf1+bFjgcJ7t7BNOtZczvs/Oy7JTOR2hIGm1UaGzoMIV+icbGe0LxEEwU8epY8++ggPPPAAYmNjUbt2bSU+yUa5jlOpUqKyLLjg2EJg1SBgXhtA4x2+4BRGkCSZxGUCN/tm3ngj0I3xo5/19OTVl1TMkcjtSC8Hn0oiwpmGAC4L9CAEIZQ9Sm+88QbatWuH2bNnO5UGEAS3RCbpUbKJ7qlL1hoJJYUBdA70YKwDI/7z5wOxscAHH9B7rYfdyJrKEUAaXHiUGhrK3CyM/xXAXQU+dkEQgguvr1Ds1nvPPfeIkSR4jj0DOMASbRGZzBPTm3S9YSwJOHsWGDJEn3/2WaB2bUoj7QNWrUJKFLAx44h6zbmhRHqGdfXb7ca0KdADEYRQN5Q6duyIDRs2+HY0QnhwfDlw4SgQXQIo1ynQo7E2Ena7iFdfBQ4eZGNu4JlnjCeNsNumzi2RZk9DybiSqFbcVe6b+WX+ZvSECR8YbOQtyg8AsmeUCoLgc0NpwoQJWLRoEd5++22cOKG3CxAEj8JulbsCkZKd7JI0Q1C6CYCbAj0Ya7BlCzB6tD7PkFuhQsYLZtitY71Mb5LrzgCt6Mo0ugzPRzgxx9itzACkIAh+NJQaNWqE3bt3K4VuJnKz8q1YsWLZJgnLCU6zcE017qpmCERwCntLvAGAjtsSgR6MNXadxx4D0tP15O2bbzZeOHYMWEJtJGB19Zg8wm7EFrbik+KgFIQCTOa+5ZZbpJeb4DnJu4HzR4DIQkDFLoEejRBETJsGLFgAxMVRx83hhZkzdSuqVSusObsjl4o3R2ikjzX0lNIMqzS0OWcEG4kYSoJQAIbSlClTvH2rEM7E1wJuSQBOrQOiJDvZJUcM6eRrAMQFejCB58wZ4Mkn9XkKSzI/KRMj7JbRozvWHhnlhkcJRt+3sgASACwyOp6FNv8zjKXqNCQDPRhBCCKkLlsoeKKLAuV4oRJc8j2Am40cJQEvvwwcPqxXuLFVSSaJicDvus70tmtb4Hz6eRSJLoK6pevmscZIhy/XbA8b2vzs4EuTWIAgFIBH6csvv8z1dYbl4uLilGL3JZdcooQphTCHwpKimeRZMskNAR6HBdi4UVfeJh9+qIfeMpkzR1edbNAAawonqadaVGiBCLf2MwagPjVMiHEhf99IccktEnYThIIzlO6///7MHCWN+QEOOD7PeSZ2M+l72LBh3n6cEApsfhvY9z3QcBhQ485Aj8a6sF/rkhySP2GewJ2RAfTsCVxPPSlcHHZDr15YfXi1m/lJJlcbzfMOA/gHQFuEMgONSRAEz/D6Fmrt2rVo1qwZrrrqKvz000+qpxsnNsnt1KkTWrRogWXLlqnX6FGioURJASHMZQFOrQHS9Tt/wQXML2ZXl0uMhJIwZupUYPFiXQbg/fdzvHj+PPDbb1mG0pHVbuYnmcQ66C6EV/WbIAgF4FF6//33Ub58ecydO/eiZrk9e/bEDTfcgMmTJ+PTTz9Ft27dcOWVV6r+cI888oi3HykEM8n7gZMr9eyIypJ441YySZjHSJh+9NRT+vxLLwHVcxqN//sfcO4cUK0atJYtsWb+Gg8NJfNL/tb40t8OyewduyEwSWdcMAm2ZGRkII1hVQ+w2+3qPRcuXEBERGiHUsNlu2NiYgK+TV4bSjNmzFD93pzBcBuNoxdffFEZStxIygm88MIL+RmrEMyYLUvKtgcKlQ/0aKwtnaznJoe9oTRiBHD0KFCvXlbFm9OwW8+e2J24B4kpiYiJjEGjso08+BSaD0x62mkIVjVDqLEcwJ1Gjd/hIFDkZsrGkSNHcPr0aa/eS6PhzJkzYSVfE8rbHRERgZo1ayqDKegMJf4o27Ztc/n61q1b1TImTOZmcrcQ5mrcIjKZOwsBpBqyyZRPDlPWrQPGjctK4L6oFoSeBuonkV69sOaw7k1qWq4poiM90USKB0A9r1+M8FuzkHVQdg4CI4mYRhKFjAsXLuzRhZ8GQ3p6OqKiokLOYAjH7bbb7Th06BAOHz6MatWqBWzbvDaU6DFiKK1OnTp48MEHM40guv4++eQTTJw4EXfccUfm8suXL1fLusP48ePxzjvvqAOmefPmGDduHFq3bp3n+7777jvcdddd6N69u/J4CRbhQgKQsFifryKGUq4wKrkZwFEg3BO4eZ91223Addc5WWjRIoAeh7JlgSuuwOqFw70Iu5n0dDCUXkYooQWZGjfDbaaRVLp0aY/fH6oGQzhvd9myZZWxxO2Ljg6MMKzXgb+xY8fi0ksvxaBBg1CiRAnlGuPE+cGDB6sEbi5jGk+FChXCk07959mZNm2aWm7EiBFYvXq1MpS6dOmCY2xTkAt79uzB008/rXKhBItxkMrJdqDkJUB8jUCPxvrQkxTGvYKpPLJsGVCkSFZfN5dhtx49gMjIzERu9yveHOlq+FoYetOVvUOFdQB2G8HFYNDBN3OS6EkSBGKG3GhEBwqvDaVSpUqpqjZWufXp0wf169dXE+f53F9//aWWIfQ20ctEb09ejB49Gg899BD69u2r+snRM8WD5rPPPnP5Hn6B99xzD0aOHIlatWp5u0mCvyhaD6h+F1Dz3kCPRLA4dBKZgpLDhwNVqjhZiK6mn42AUs+e6m7alAbwzqPE89RVISk++bPhXWAmVhEED6HmFRGCe1/wOvRmbkCvXr3U5AtSU1OxatUqJSXgmMh17bXXqtCdK1555RXlqu3Xrx+WGM0xBQtR7kp9EnKHIjd0nD5jNLgPQ1jdlpAANGwIPPGEi4X+/puJLECxYsDVV+Pw2cM4lnwMkbZINCvvbY5RLyOLnp4qR+nv4GZGEIXdBMGq5MtQ8jXHjx9X3iHKDjjCx0wOd8bSpUuVDAF1ndwhJSVFTSZJSUmZSWOOyeehDrfVrJQIJyy73WmAbaoNtlM22B+16zXdPsSy2+3A6tXARx/x7tGGDz6wIypKdx7lxPbTT6qIX7vpJmjR0Vi1h03xgAZlGiA2MjbbNrq/3d1gsz0Gm+1v2O37AVRGMMPt3W+zYaPNhihNw438DmB9zN/LnLzBfJ+37w9W/LHdTGmpVauWSoOhNmIgMPcFZ9fogjqfuW0oMf+I3h0aLEyo4uO8XGJ8fedOlt36B5ZC3nvvvSqsV6ZMGbfeM2rUKBWiy0lCQoLyaIUL3MESExPVDuhPjYrYY7ORUbgO0ovU5w6BcNluT4lZHINSp0oho3QGEuom6J6lMNhuE57vBgwoBbs9Bj16nEeTJolwmpaoaSjz00/qxHX66quRcuwYluzQvcgNSzS8KJfR/e2ORKlSrRAT8y/Onv0a5871RTDD7Y5PTMRKTcP62FikpaT4epfyW44Sx87EXU6ewt/ZzGWxQsjGl1CwmakpLHKi2POYMWNw2WWXudxuthljoZUjrD7nddNdzN8g3cvfwxVMz3n55Zexd+9eVeRFqSFqL7oaA/eJEydOXJTMzWPbUoZSx44d1Q9gnmzMx76Exk5kZCSOUjzFAT6uUKHCRcvTCKPF27UrkzGzW5jM/qd8QW120XSAYT3HpHJ6lKpWraoy65mIHi7we+Lvx+3224Uz4wJsi5+ALT0Z9i7/AiVbhsd2e4FtoX4sRfSIQLmK5cJmu02YgrhqVQTi4zWMGxerQulOWbcOEXv3QouLQ3FW1RYpgu1ntquX2tZoe9H7PNvu2wH8i6JF/0B8POOfwYu53XXLlMElFvy9XcHCH17Ief7m5C2Bqo7yFyxyGjp0qDKW2rRpo4ykm266STkuHPd5x+3m/s72YY7RGO4Tnnyv5rJR+fw9HGH+Mh0cNI5uvvlmTJ06FbfeeqtKu2nSpInTMXBbWAWZU2KowLSVNIvRunVrbeDAgZmPMzIytMqVK2ujRo26aNnz589rGzZsyDZ1795du/rqq9V8SkpKnp+XmJhIP6V26tQpLZzg93r48GH112/sn6lp30DTfq6iaXa7Fjbb7SkcSkXDwfxrGG23wYkTmlamDOMFmvbee3ksPHy4vmD37plPVX+/uoaXoS3cvTCf273D+BEiNU07rgUzVv69c4Pn9M2bN6u/3mC327XU1FT1tyCZNWuWVrx4cS09PV09XrNmjbquPPPMM5nL9OvXT7vnnnu8vi4+9thjmY/5u1aqVCnzuuhsuz///HM1pvywe/dutR3ffvut1rZtWy02NlZr3LixtnDhxceau9x+++3aTTfdlO25Nm3aaA8//LDH+wSv2xwfr+P+JF+93r79ltL/WcybNw8dOnRQFq8pDeAp9PYwlPbFF19gy5YtquVJcnKyqoIj9913X2ayN61LWqCOE71CRYsWVfOBVPIUqMZtlHBX6WWJsJtl+ceQTC5m9GkNMyjYf/w40Lgx8PjjeSzs0ASXnDh3AnsT96r5FhXym0NB73NzukIBzEIwMwnAXSVLBvlW6NAyTk4OzORuug9laegJW7NGFz5dtGiRipAsXEgFWWQ+xz6oZN++fYiPj891MjtfmEVOLGrypMiJnD17FtWrV1dRE+oLbtq0yZufAPRmPfXUU2r72rZtq6I4DIWZ5LUtAwYMyFyWY3bcFkIJoLy2JZB47UsbNmyYKts3S/53796terzRPVapUiVl8FA7qX///h6tlyKVzBcaPny4isUygYz95MwEb+5gVgwdCDmwpwEHDOXkqlJzkytmRTr7s+ZUoA5x/v0XmMSrOpjIzdBBLgv/9x+wcSN98cDNN6un1hzRL0y1S9ZG8ThfdDLraagP0SC7H8HKDzYbFsbG4mYLJ++7C9v5xVNA3S14Q+a7sNvZs7qeV14UL15cXatoGFFfkH+HDBmi8mFprDCXZseOHSplhfAamVcBkimv402RE6FcD2V1mM/Ez3/33XfRrl07ZSxVcaq74ZqBAweqNmSE4T9ek1lERTuA5LUtDAGa8LrubFv4fMgZSuvWrVNWpgkTx5hfRIuTljQNHmogeWoomT8KJ2c4WujOmDJlisefJ/iBY4uB1JNAbFm9v5vgmvoAmJMZZvYkr+GPPqrftffuDXTokMcbTO2kq67iVUTNmq1LvNNPckYvQ537f7xMGi1Ogovj9F4Y8z0CPJZwgkYQr0/0vFCmhoVD33//varMPnnypDKO6tatm5l3426nCm+h54eTCY2khg0bYtKkSXj11Vc9XpcJx05jkBEfE39vS9AaSrRQHSXmf/31V1x33XWZ1Wec/+2333wzSiH42G9c1Kp0ByKCocNUAOlnTOFVzYyPPwZWrtTlkN55x4035Ai7EVOR23eGEpNJ6xgK3Tx/3YZgg+E2u82GJmlpqBkZ/MceRbrp2QlEKw9PBMIZVqMHh04EJlU3aNBAPUfj6dSpU5neJDMyQkHl3Hj++efV5GmRkys4ppYtWyrPlq+Jz8Pl17t3b+U4IRxzfrclaAylihUrZlqUbFjHGKqZR0TobpQQWRhz9E/9r/R2c58wSuPavTtLgZs3t3meIw8cAP75R891686GeMjmUfKudYmrH4GG2NtG+C34DCWzt9sNFy64FzeyOPzJ3d0MeidZxc7obEGnRZp5Su+//36mUURD6c0331SGEj1NJp6E3phr26pVK/zxxx/owZY9RlUjH7uKvDiD4bsNGzbgxhtv9Hjb/v77b5V/TGiI8nrv+NmehN7oneLYn3BQlJ0/f342r5Xl8DYLfPDgwVpcXJz2+OOPq4z8woULa0eOHMl8/f7779datmypWR2pevNTVUz6BU07+Kv+10JYrhpopqZpp8NruzmEjh314rUOHfTHeTJunP6Gdu0yn0q6kKTZXrapirejZ4/6cLv/Nqrf4llzowUTSZqmxRijX5iQYInfOxyq3kxatGihRUZGahMmTFCPT5w4oUVHR6trzNatW71e73fffacqzqZMmaK+n/79+2slSpTIvOZye1lR51hlN3LkSG3evHnazp07tVWrVml33nmnumZv2rTJ46q3atWqadOnT9e2bNmiPjs+Pl5LSEjwaluWLVumRUVFae+++65a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sv4tt9yCpUuXwpcYM2YMWrRogbJly8qx6pFHHsHBgweL/M2sWbMK9Su135d45513CrWB+tGf+9rd+EWFxid/6uvff/8dDz74IOLj4+U+f//99wW+p7izt99+G3FxcXJM69ixI/78888bPj4ErFCim8MTTzyBvn37uvzeZrNJkUT11q9fjy+++EKebNQpRUEiae/evfjll1+wePFi2dEvvPACvBESisnJyQXKc889J2+kzZs3L/K3zz//fIHfffDBB/A13n333QJteOWVV4qsP2jQICxatEgOtKtXr8bp06fx2GOPwVc4cOCAXChz6tSp8hydMGECPv/8cwwfPvyqv/Wl/v76668xePBgKQK3b9+Opk2b4t5770VKSorL+nR9d+vWTYrIHTt2SJFB5Y8//oCvQOcj3SQ3btwox568vDzcc889uHLlSpG/owc6Y78eP34cvkajRo0KtGHt2rVu6/pDXxP0IGtsM/U5Qfc0f+rrK1euyOuXhI0raBz69NNP5Ti2adMmREZGymudHmpv1PjgFhFAzJw5U0RHRxfavnTpUmE2m8WZM2cc26ZMmSKioqJETk6Oy7+1b98+SqsgtmzZ4tj2008/CZPJJJKSkoS3k5ubKypXrizefffdIuu1b99eDBw4UPgyNWrUEBMmTLjm+mlpaSI4OFgsWLDAsW3//v2yvzds2CB8lQ8++EDUrFnTr/q7ZcuWol+/fo7PNptNxMfHizFjxris36VLF9G5c+cC21q1aiVefPFF4aukpKTIc3P16tXFHvt8iZEjR4qmTZtec31/7GuCrs/atWsLu93ut30NQHz33XeOz9TW2NhYMX78+ALjdGhoqPjqq69u2PjgjoCwKF2NDRs2SLNsTEyMYxupTlpokJ7G3f2GptuM1hgyBdKaM6R2vZ0ff/xRrrjcu3fvq9adM2cOKlWqhMaNG2PYsGHIzMyEr0FTbTSN1qxZM4wfP77IadVt27bJp3TqTx0y39Pii9TvvryA5LUsHukr/U0WYOorYz/R9Uef3fUTbTfW1691X+9X4mp9S24BNWrUkIunPvzww27HNm+GplpoaqZWrVrSok8uE+7wx76mc3727Nl49tln5fSUP/e1kcTERJw5c6ZAf9L6rDSV5q4/r2d8cEfAL4pLUAcYRRKhf6bv3P2G/AOMBAUFycHK3W+8ienTp8tBo1q1akXW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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 9
  },
  {
   "cell_type": "code",
   "id": "e8a803ef8893edc5",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:32:36.425943Z",
     "start_time": "2025-06-19T14:32:36.373317Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "# 定义可组合的Sigmoid基函数\n",
    "class SigmoidComponent:\n",
    "    def __init__(self, w=1, b=0):\n",
    "        self.w = w\n",
    "        self.b = b\n",
    "\n",
    "    def __call__(self, x):\n",
    "        return 1 / (1 + np.exp(-(self.w * x + self.b)))\n",
    "\n",
    "\n",
    "# 生成复合曲线, sigmoid的输出相加\n",
    "def composite_sigmoid(x, components):\n",
    "    return sum(component(x) for component in components)\n",
    "\n",
    "\n",
    "# 创建4个不同参数的Sigmoid组件\n",
    "components = [\n",
    "    SigmoidComponent(w=2, b=-5),\n",
    "    SigmoidComponent(w=-2, b=-3),\n",
    "    SigmoidComponent(w=3, b=2),\n",
    "    SigmoidComponent(w=-1.5, b=5)\n",
    "]\n",
    "\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "\n",
    "# 可视化各组件及合成效果\n",
    "for i, comp in enumerate(components):\n",
    "    plt.plot(x, comp(x), label=f'Sigmoid {i + 1} (w={comp.w}, b={comp.b})')\n",
    "\n",
    "plt.plot(x, composite_sigmoid(x, components), label='Composite')\n",
    "\n",
    "plt.legend(loc='upper left', bbox_to_anchor=(1, 1))\n",
    "plt.grid(True, alpha=0.3)  # 拟合\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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+qJ2c3P+HG5XOl4eq/NypePlsTovVznerKwsWxeBiKpJY5BvqOo+WaPBnDlzMGLEiCo9r1+/fmjYsCF++OGHSrckxMbG4ty5cwgICLDql7QEHuHh4U79Je2Kx8tjdV6udLw8VuflKscrv9/BwcEqILLm7zcROVF3I3Pdu3fH6tWry33cy8tLLaXJF6m1v0wl0KmN17VXrnS8PFbn5UrHy2N1Xq5wvM58bETOziZ/vdu3b1fdkIiIiIiIyAlaErKzs3H48OGS+wkJCarSHxISoroQTZw4EadOncL333+vHv/4448RFxeHNm3aqHwCyUn4+++/sWTJEuseCRERERER2SZI2Lx5M/r3719y/+mnn1a3d999N2bMmKHmQDhx4kTJ44WFhXjmmWdU4ODr64v27dtj2bJlFq9BREREREQOHCTIyEQV5TpLoGDuueeeUwsRERERETkGZhQREREREZEFBglERERERGSBQQIREREREVlgkEBERERERBYYJBARERERkQUGCUREREREZIFBAhERERERWWCQQEREREREFhgkEBERERGRBQYJRERERERkgUECERERERFZYJBAREREREQWGCQQEREREZEFBglERERERGSBQQIREREREVlgkEBERERERBYYJBARERERkQUGCUREREREZIFBAhERERERWWCQQEREREREFhgkEBERERGRBQYJRERERERkgUECERERERFZYJBAREREREQWGCQQEREREZEFBglERERERGSBQQIREREREVlgkEBERERERBYYJBARERERkQUGCUREREREZIFBAhERERERWWCQQEREREREFhgkEBERERGRBQYJRERERERkgUECERERERFZYJBAREREREQWGCQQEREREZEFBglERERERGSBQQIREREREVlgkEBERERERBYYJBARERERkQUGCUREREREZIFBAhERERERWWCQQEREREREFhgkEBERERGRBQYJRERERERkgUECERERERFZYJBAREREREQWGCQQEREREZEFBglERERERGSBQQIREREREVlgkEBERERERBYYJBARERERkQUGCUREREREZIFBAhERERERWWCQQEREREREFhgkEBERERGRBQYJRERERERkgUECERERERFZYJBAREREREQWGCQQEREREVHNgoRVq1Zh2LBhiImJgUajwdy5cy/7nH/+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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 11
  },
  {
   "cell_type": "code",
   "id": "a98613bfea9a72dc",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T01:57:19.258728Z",
     "start_time": "2025-06-20T01:57:19.199100Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "# 简单的ReLU\n",
    "def relu(x):\n",
    "    return np.where(x >= 0, x, 0)\n",
    "\n",
    "\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "y = relu(x)\n",
    "\n",
    "plt.plot(x, y)\n",
    "plt.show()\n"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 3
  },
  {
   "cell_type": "code",
   "id": "cd4dbddbc6cd6486",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:15:59.240750Z",
     "start_time": "2025-06-19T14:15:59.171804Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "# 定义可组合的ReLU函数\n",
    "class ReluComponent:\n",
    "    def __init__(self, w=1, b=0):\n",
    "        self.w = w\n",
    "        self.b = b\n",
    "\n",
    "    def __call__(self, x):\n",
    "        o = self.w * x + self.b\n",
    "        return np.where(o >= 0, o, 0)\n",
    "\n",
    "\n",
    "# 生成复合曲线, relu的输出相加\n",
    "def composite_relu(x, components):\n",
    "    return sum(component(x) for component in components)\n",
    "\n",
    "\n",
    "# 初始设置\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "\n",
    "# 创建4个不同参数的Relu组件\n",
    "components = [\n",
    "    ReluComponent(w=-5, b=-1),\n",
    "    ReluComponent(w=-5, b=-10),\n",
    "    ReluComponent(w=5, b=10),\n",
    "    ReluComponent(w=10, b=-10),\n",
    "]\n",
    "\n",
    "# 可视化各组件及合成效果\n",
    "for i, comp in enumerate(components):\n",
    "    plt.plot(x, comp(x), '--', alpha=0.5, label=f'ReLu {i + 1} (w={comp.w}, b={comp.b})')\n",
    "plt.plot(x, composite_relu(x, components), 'r-', lw=2, label='Composite Curve')\n",
    "plt.legend(loc='upper left', bbox_to_anchor=(1, 1))\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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Q0Jge+89vVtE5xBEGgwGdfP29lYLKD3yyCNqddPaLL4kX7/RXpHJwb777jv1/DUJdmfNmoXU1FRcddVVqA9Tp05VC2bJisrSxpycnBOOycrKwjXXXKOOCQsLw80334yCggI4o3vuuQfdunWDr68vunTpctJjNm/ejP79+6tVbxMSEvDqq69We/yhhx7Cl19+iX379jmkTQz2iYiI6lNxMXDbbZX7r7wCNGigZ4voHI0YMQJHjx5Vwdlbb72FTz75BM888wycgXQkJHiU4LIm3n33Xdx4440w1tOCbkVFRer1e/zxx095jAT627Ztw4IFCzBnzhwsXboUt956K5zVTTfdhCuvvPKkj+Xl5WHYsGFITEzEunXr8Nprr+HZZ59VnR67qKgoDB8+HB999JFD2sNgn4iIqD49/zywZ4+23bcv4MRBC9WMjOLGxcWpUVoZPR8yZIgKTO2sViumTJmiRv39/f3RuXNn/PTTTzV+/iZNmuDtt9+udp+MGkuQeDoWi0UFypMnT0azZs3O+H3S09OxePFiXHzxxRX3SUdh9OjRFfvSDhmBnz9/fsV9LVq0wKeffoqzcd9996m0ld69e5/08R07dqjvJc/fq1cv9OvXD++99566WpGcnFzr7zd58mRER0erqwS33347ysrK4EjSWbrzzjtP+Xp/88036nt+/vnnaN++vbqCIlcD3nzzzWrHyc9AztERGOwTERHVl82bgdde07a9vSWHAainEVRXZisrO/XNbK75seXlZzz2XG3duhXLly+HT5W1EiTQ/+qrr/Dxxx+rEer7778f1157LZYsWYK69NxzzyEmJkalvdTEsmXLEBAQgLZt21bcN3DgQHW/dByEtFlGnv/66y+1f+TIEezdu1el4tiD2aCgoNPe/v777xqfw4oVK1TqTvfu3Svuk86UXHlYtWoVamPRokWq8yBt//bbb/Hzzz+r4N/upZdeOmPbDx06VKvvebLzkTkRVd8fMoq/c+dOZGdnV9zXs2dPHD58WF2ZOVde5/wMREREdGYSLE2YANiDU0lbkNVy6YwyPqlMcTieT5NEhFYZic78/HPYyqt3AOy8GzZE2KXjKvazvvoK1uLqufXRd99V6/ZJaokEgmazGaWlpSoQff/999Vjsi9B5MKFC9GnTx91n4z6SgAt6T4STNcFef7PPvusVvMADh48iNjY2Gop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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 2
  },
  {
   "cell_type": "code",
   "id": "dd276e4d28738047",
   "metadata": {},
   "source": [
    "def softmax(x, temperature=1.0):\n",
    "    \"\"\"温度参数控制概率分布的尖锐程度\"\"\"\n",
    "    exp_x = np.exp((x - np.max(x)) / temperature)  # 数值稳定性处理\n",
    "    return exp_x / exp_x.sum()"
   ],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "markdown",
   "id": "f6481ffd91fa937a",
   "metadata": {},
   "source": [
    "## 使用Sigmoid来拟合二分类样本"
   ]
  },
  {
   "cell_type": "code",
   "id": "8c5bf274f30a05ac",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:33:28.140230Z",
     "start_time": "2025-06-19T14:33:28.088741Z"
    }
   },
   "source": [
    "import matplotlib.pyplot as plt\n",
    "# 模拟出一个二分类的样本数据集\n",
    "import numpy as np\n",
    "\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y = np.concatenate((y0, y1))  # 合并两个数组\n",
    "\n",
    "plt.scatter(x, y)\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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ePCgtBXr1683s9U29vjoo4/8bnfZZZc1KD9hwgQJBklJSQ2O/aGHHmpymyNHjsjtt98up5xyinTp0kV+/etfS0lJibRlO3fuNO+33r17S6dOneSss84yvfIrKyub3C6Y6jY3N9fUZ3R0tKSkpMjGjRubLP/SSy/JeeedZ8pfcMEFsmbNGmnrcnJyZMiQIWZmaf3cGTlypGzfvr3JbVatWtWgDvWc27rZs2c3OG6tr1Cr06Y+i/ShnzWhVK9uCvkwoh/Qv/nNb2TixImNrq+qqjJBRMtt2LBBnnnmGfPGmDlzZpP71SDyxRdfyLp16+T111+X9957T2699VZpKzSA/fDDD3Uet9xyi7mADR48uMltx48fX2e7+fPnS7C4//776xz75MmTmyw/ZcoU+fvf/24++N59913zZwd+9atfSVu2bds28ycSnnzySfMeXLRokSxbtkzuvffe424bDHW7evVqycrKMgFr06ZNkpycLOnp6bJ79+5Gy+vv7ejRo01A27x5s7mo6+Pzzz+Xtkzfb3px+uCDD8znyNGjR2X48OFSXl7e5Hb6Bah2He7atUuCwfnnn1/nuN9//32/ZYO1Tn30C1/tc9X6VXotCrV6dY3TTjz99NNObGxsg+Vr1qxxwsPDneLi4pplTzzxhBMTE+NUVFQ0uq8tW7bocGjno48+qln25ptvOmFhYc53333ntEWVlZXOqaee6tx///1Nlrv00kudO+64wwlGZ5xxhrNo0aJml9+/f7/TsWNH56WXXqpZtnXrVlO3+fn5TjCZP3++07t375Co26FDhzq33357zfOqqiqnR48eTk5OTqPlf/vb3zpXX311nWUpKSnObbfd5gST3bt3m/feu+++G/DnWFs3a9YsJzk5udnlQ6VOffT37qyzznKqq6tDql7dFPItI8eTn59vmgDj4+Nrlum3MP0jRvqt0982emumdgtDWlqa+Rs6H374obRFr732mvz444+SmZl53LLPPfecxMXFSb9+/SQ7O1sOHTokwUJvy+gtl4EDB8qCBQuavN1WUFBgvo1q3flos/Dpp59u6jiYlJaWSrdu3YK+brWFUuuldp3o75U+91cnurx2ed/vcDDWoTpePert4DPOOMP8kbVf/vKXfj+n2pr//Oc/5o+lnXnmmaZlWW+P+xMqdep7Tz/77LPy+9//vsk/9HowSOvVLUHxh/K8VFxcXCeIKN9zXedvG73HW1uHDh3Mh4i/bWxbsWKF+WU+3h8cvPHGG80vhH5ofPrppzJ16lRzH/uVV16Rtu6Pf/yjXHjhhaYetJlXL7ba3Llw4cJGy2tdRUZGNuhLpPXfVuuxMTt27JAlS5bII488EvR1u3fvXnPrtLHfSb09FcjvcDDVod52u/POO+Xiiy82QdGfc889V1auXCn9+/c34UXrXG/J6oXLyz8m2lra70dvf+vx6+/knDlzZNiwYea2i/aZCcU69fnrX/8q+/fvl5tvvjnk6tVVThCaOnWqac5s6qHN7c1pBhs/frwzfPjwOsvKy8vNPvQWTmMefPBB55xzzmmwXG+DPP74405bO/eioiJzK+rll18O+Ofl5eWZfe7YscOxoSXn67NixQqnQ4cOzpEjRxpd/9xzzzmRkZENlg8ZMsS55557nGA412+//dY0/44bNy7o6rYxeptTj2nDhg11lt99993m9k1j9Fbb888/X2dZbm6u0717dydYTJgwwdxm1N/VQG+/av1Pnz7dCSY//fSTuRX+l7/8JWTr1EevL9dcc027qNfWCMqWkbvuuqvJlKm0KbA5EhISGvTU942m0HX+tqnfmU5vB+gIG3/b2Dz3p59+2ty6uO6661r0jcb37VtHbQRTXeuxa73o6BP95lGf1pU2oeq3ltqtI1r/XtejG+eqnW0vv/xy8w3qqaeeCrq6bYzeQoqIiGgwoqmpOtHlgZRvayZNmlTTCT7Qb8EdO3Y0tyS1DoOJ/r6dc845fo872OvURzuhvv322wG3PnYM0nptFaedOF4H1pKSkpplTz75pEnt/r5R+zqwfvzxxzXL3nrrrTbZgVU7TGnHxrvuuqtF27///vvmXP/97387webZZ581dbtv374mO7DWbjHatm1bUHRg1RaRs88+2/nd737nHDt2LKTqVltAJk2aVKcDa8+ePZvswFr/m2dqamqb7+yov5vaUVc753755Zct2ofW/bnnnutMmTLFCSYHDhxwTj75ZOexxx4LqTptrONuQkKCc/To0XZRr60R8mFk165dzubNm505c+Y4Xbp0Mf+vD/1l8FV6v379TFPaJ5984qxdu9bcbsnOzq7Zx4cffmjeGHoB8LnyyiudgQMHmnX6oa4XhtGjRzttzdtvv+33Voaej56XnoPS5nodbaMh65tvvnH+9re/OWeeeaZzySWXOG2dNuvrSBqtw6+++soEEa3HjIwMv+frax4//fTTnX/84x/mvPUDTx9tmZ7Hz372M+cXv/iF+f8ffvih5hEKdfvCCy84UVFRzqpVq0zwv/XWW52uXbvWjHgbM2aMM23atJry//rXv8ztuEceecS8z/UCoCHzs88+c9qyiRMnmi9I69evr1OHhw4dqilT/1z1c0y/+Oh7vKCgwITR6Oho54svvnDaMv0ypOep7z2tr7S0NCcuLs6MIAqlOq1NQ7R+tujt1/pCpV7dFPJhZOzYsY3ee3/nnXdqyuzcudO56qqrnE6dOplfEP3FqZ1ktaxuo79IPj/++KMJHxpwtBUlMzOzJuC0JXqMF110UaPr9HxqvxaFhYXm4tStWzdzMdALnt6rLy0tddo6/QXWoX/64a6/xH369HHmzZtXp3Wr/vmqw4cPO3/4wx/Mt7TOnTs7119/fZ2Leltt5fPXpyRU6nbJkiXmg1z79GhLyQcffFBniLL+Xtf24osvmn5cWv7888933njjDaet81eHWr/+zvXOO++seV3i4+OdESNGOJs2bXLaulGjRjmnnXaaOW5t5dLntfsqhUqd1qbhQutz+/btDdaFSr26KUz/Y/tWEQAAaL/a/TwjAADALsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAsen/AY4sWPCjkSQFAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 12
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": [
    "(sigmoid(w * x + b) - y)**2\n",
    "\n",
    "z = w * x + b\n",
    "s = sigmoid(z)\n",
    "g = s - y\n",
    "loss = g**2\n",
    "\n",
    "w.grad = 2g * 1 * sigmoid(z)*(1-sigmoid(z)) * x\n",
    "\n"
   ],
   "id": "2cc283e3034eca6e"
  },
  {
   "cell_type": "code",
   "id": "c9a7ebec1ae3cdab",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:36:59.487109Z",
     "start_time": "2025-06-19T14:36:58.977558Z"
    }
   },
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "# 数据准备\n",
    "x = np.random.randint(-10, 10, 100)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y = np.concatenate((y0, y1))  # 合并两个数组\n",
    "\n",
    "# 将 NumPy 数组转换为 PyTorch 张量\n",
    "x_tensor = torch.tensor(x, dtype=torch.float32)\n",
    "y_tensor = torch.tensor(y, dtype=torch.float32)\n",
    "\n",
    "dataset = TensorDataset(x_tensor, y_tensor)\n",
    "dataloader = DataLoader(dataset, batch_size=5, shuffle=True)\n",
    "\n",
    "w = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "\n",
    "optimizer = torch.optim.SGD([w, b], lr=0.01)\n",
    "criterion = torch.nn.MSELoss()\n",
    "\n",
    "\n",
    "def sigmoid(x):\n",
    "    return 1 / (1 + torch.exp(-x))\n",
    "\n",
    "\n",
    "# 训练循环\n",
    "epochs = 200\n",
    "for epoch in range(epochs):\n",
    "    for x_batch, y_batch in dataloader:\n",
    "        y_predict = sigmoid(w * x_batch + b)\n",
    "        loss = criterion(y_predict, y_batch)  # (sigmoid(w * x + b) - y)**2\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "# 最终预测结果\n",
    "final_prediction = sigmoid(w.data.item() * x_tensor + b.data.item())\n",
    "\n",
    "# 绘图\n",
    "plt.scatter(x, y)\n",
    "plt.plot(x, final_prediction.numpy(), color='r')\n",
    "plt.show()\n",
    "\n",
    "# 输出最终的权重值\n",
    "print(f'最终拟合的权重 w: {w.data.item()}')\n",
    "print(f'最终拟合的权重 b: {b.data.item()}')\n"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最终拟合的权重 w: 0.8875840902328491\n",
      "最终拟合的权重 b: 1.435689091682434\n"
     ]
    }
   ],
   "execution_count": 14
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:46:55.083016Z",
     "start_time": "2025-06-19T14:46:55.026907Z"
    }
   },
   "cell_type": "code",
   "source": [
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 数据准备\n",
    "x = np.random.randint(-10, 10, 150)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y2 = np.zeros(50)\n",
    "y = np.concatenate((y0, y1, y2))  # 合并\n",
    "\n",
    "plt.scatter(x, y)\n",
    "plt.show()"
   ],
   "id": "9e543e46dfe87bad",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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cwgojFRXV0thYaGkp6f/ZweRkeZ5QUFBs9uMHDnSbOMLH1988YVs2LBBxowZ4/fnVFVVSUVFRYMHAAAIT10CKbx//36pqamRxMTEBsv1+c6dO5vdRltEdLvvf//74jiOnDhxQqZOndribZrc3FxZsGBBIIcGAABClOejaTZv3iyLFi2Sxx57zPQxeemll2T9+vWycOFCv9vk5ORIeXl53aO4uNjrwwQAAKHQMpKQkCBRUVFSWlraYLk+T0pKanabOXPmyI033ig333yzeX7RRRdJZWWlTJkyRe655x5zm6exmJgY8wAAAOEvoJaR6OhoGTp0qOTn59ctq62tNc/T0tKa3ebIkSNNAocGGqW3bQAAQOcWUMuI0mG9EydOlGHDhsmIESPMHCLa0qGja1RmZqb07dvX9PtQ1157rRmBc/HFF5s5SXbv3m1aS3S5L5QAAIDOK+AwMn78eNm3b5/MnTtXSkpKZMiQIbJx48a6Tq1FRUUNWkJmz54tERER5t+vvvpKTjvtNBNE7rvvPnfPBAAAhKQIJwTulejQ3vj4eNOZNS4uzvbhAAAAFz+/+ds0AADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAgNALI3l5edKvXz+JjY2V1NRU2bZtW4vlDx48KLfccoucfvrpEhMTI+edd55s2LChrccMAADCSJdAN1i3bp1kZ2fLihUrTBBZtmyZZGRkyK5du6R3795NyldXV8tVV11l1r344ovSt29f2bt3r/Ts2dOtcwAAACEswnEcJ5ANNIAMHz5cHn30UfO8trZWkpOTZfr06TJr1qwm5TW0LFmyRHbu3Cldu3Zt00FWVFRIfHy8lJeXS1xcXJv2AQAAOlZrP78Duk2jrRyFhYWSnp7+nx1ERprnBQUFzW7zyiuvSFpamrlNk5iYKIMGDZJFixZJTU2N359TVVVlTqD+AwAAhKeAwsj+/ftNiNBQUZ8+LykpaXabL774wtye0e20n8icOXPkoYcekt///vd+f05ubq5JUr6HtrwAAIDw5PloGr2No/1FnnzySRk6dKiMHz9e7rnnHnP7xp+cnBzTpON7FBcXe32YAAAgFDqwJiQkSFRUlJSWljZYrs+TkpKa3UZH0GhfEd3OZ8CAAaYlRW/7REdHN9lGR9zoAwAAhL+AWkY0OGjrRn5+foOWD32u/UKac+mll8ru3btNOZ/PPvvMhJTmgggAAOhcAr5No8N6V65cKU8//bTs2LFDpk2bJpWVlZKVlWXWZ2ZmmtssPrr+wIEDctttt5kQsn79etOBVTu0AgAABDzPiPb52Ldvn8ydO9fcahkyZIhs3LixrlNrUVGRGWHjo51PX3vtNZkxY4YMHjzYzDOiwWTmzJnungkAAOgc84zYwDwjAACEHk/mGQEAAHAbYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAABA6IWRvLw86devn8TGxkpqaqps27atVdutXbtWIiIiZNy4cW35sQAAIAwFHEbWrVsn2dnZMm/ePNm+fbukpKRIRkaGlJWVtbjdnj175He/+52MGjWqPccLAAA6exhZunSpTJ48WbKysmTgwIGyYsUK6d69u6xevdrvNjU1NXLDDTfIggUL5Oyzz27vMQMAgM4aRqqrq6WwsFDS09P/s4PISPO8oKDA73b33nuv9O7dWyZNmtSqn1NVVSUVFRUNHgAAIDwFFEb2799vWjkSExMbLNfnJSUlzW6zZcsWWbVqlaxcubLVPyc3N1fi4+PrHsnJyYEcJgAACCGejqY5dOiQ3HjjjSaIJCQktHq7nJwcKS8vr3sUFxd7eZgAAMCiLoEU1kARFRUlpaWlDZbr86SkpCblP//8c9Nx9dprr61bVltb+78/uEsX2bVrl5xzzjlNtouJiTEPAAAQ/gJqGYmOjpahQ4dKfn5+g3Chz9PS0pqUv+CCC+Sjjz6SDz74oO5x3XXXyZVXXmn+n9svAAAgoJYRpcN6J06cKMOGDZMRI0bIsmXLpLKy0oyuUZmZmdK3b1/T70PnIRk0aFCD7Xv27Gn+bbwcAAB0TgGHkfHjx8u+fftk7ty5ptPqkCFDZOPGjXWdWouKiswIGwAAgNaIcBzHkSCnQ3t1VI12Zo2Li7N9OAAAwMXPb5owAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAKEXRvLy8qRfv34SGxsrqampsm3bNr9lV65cKaNGjZJTTz3VPNLT01ssDwAAOpeAw8i6deskOztb5s2bJ9u3b5eUlBTJyMiQsrKyZstv3rxZJkyYIG+88YYUFBRIcnKyjB49Wr766is3jh8AAIS4CMdxnEA20JaQ4cOHy6OPPmqe19bWmoAxffp0mTVr1km3r6mpMS0kun1mZmarfmZFRYXEx8dLeXm5xMXFBXK4AADAktZ+fgfUMlJdXS2FhYXmVkvdDiIjzXNt9WiNI0eOyPHjx6VXr15+y1RVVZkTqP8AAADhKaAwsn//ftOykZiY2GC5Pi8pKWnVPmbOnCl9+vRpEGgay83NNUnK99CWFwAAEJ46dDTN/fffL2vXrpWXX37ZdH71JycnxzTp+B7FxcUdeZgAAKADdQmkcEJCgkRFRUlpaWmD5fo8KSmpxW0ffPBBE0Zef/11GTx4cItlY2JizAMAAIS/gFpGoqOjZejQoZKfn1+3TDuw6vO0tDS/2y1evFgWLlwoGzdulGHDhrXviAEAQOdtGVE6rHfixIkmVIwYMUKWLVsmlZWVkpWVZdbrCJm+ffuafh/qgQcekLlz58pzzz1n5ibx9S3p0aOHeQAAgM4t4DAyfvx42bdvnwkYGiyGDBliWjx8nVqLiorMCBufxx9/3IzC+dnPftZgPzpPyfz58904BwAA0JnmGbGBeUYAAAg9nswzAgAA4DbCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACsIowAAACrCCMAAMAqwggAALCKMAIAAKwijAAAAKsIIwAAwCrCCAAAsIowAgAArCKMAAAAqwgjAADAKsIIAACwijACAACs6iKdVPmR4/KrNdvk6/Jj0ic+VlbfNELiu3d1bf9F+4/I1Y+8KUeP10q3rpGy8bbL5cyE7q7tv+TgMfnh8rek4tgJiYvtIn+dfpkk9Yx1Zd9fllWaY6+qcSQmKsIce//e3xG3HD52Qmase1+K/n1Uzjy1mzw8/mLpEeveS/GrA0flmj+8KZVVNfKdmCh59beXS99e3Vzb/9HqGlm04VPZ8+0R6ffd7nL3mIHSLTrKtf3DDq/r1cv3bEdc07zcv9fHXn2iVv5/wR7Ze+CInNWru9yY1k+iu7j3XfzA4Wr55ZNbpexQtfQ+JVrWThkpvXpEu7LvfRVV8uPHtsiByuPS6ztd5eXffF9Oi4uRULletlaE4zhOoBvl5eXJkiVLpKSkRFJSUmT58uUyYsQIv+VfeOEFmTNnjuzZs0fOPfdceeCBB2TMmDGt/nkVFRUSHx8v5eXlEhcXJ+11+ZK/yd5vjzZZftZ3u8mbd/5Xu/f/vbvXy4napsv1tb970dh273/AnFdNyGlMQ8+Ohde0a99n56yX2mZeEZERIl/ktv/Yr3v0v+XDf1U0WT74jDh55dZR7d7/efdskOqapicQHRUhn93X+tecP5P/37uy6dOyJsuvGthbVmYOb/f+YYfX9erle7Yjrmle7t/rY8/d8Kms/O8vG1zX9Ho2eVR/yRkzsN37H/77TbLvcHWT5af1iJZ3Z1/Vrn0Pnv+aCa+NaZj9cH6GBPv1MpDP74Cj4bp16yQ7O1vmzZsn27dvN2EkIyNDysqavpHV1q1bZcKECTJp0iR5//33Zdy4cebx8ccfiw3+XvhKl+v69vAXRJQu1/VeXNSULtf1bgcRpct1vRdBROlyXe/FG0vpcl3vxQeW0uW6HqHH63r18j3bEdc0L/fv9bFrEHnirYZBROlzXa7rvQgiSpfrereDiNLluj6Yr5eBCjiMLF26VCZPnixZWVkycOBAWbFihXTv3l1Wr17dbPlHHnlErr76arnzzjtlwIABsnDhQrnkkkvk0UcflY6mTYH+Xvg+ul7LtfXWjL8g4qPrtVxbm3n9XdR8dL2Wa8utGX9BxEfXa7m23prxF0R8dL2Wa2tTo783lo+u13JtbcL394Hlo+u1HEKH1/Xq5Xu2I65pXu7f62PXWzPaItISXa/l2nprxl8Q8dH1Wq4tt2YqTnIt1PVaLhivl56HkerqaiksLJT09PT/7CAy0jwvKChodhtdXr+80pYUf+VVVVWVadqp/3CD3pN0s1xj2s/CzXKN6f1mN8t15LFrHxE3yzWm9zzdLNeY9iVwsxyCg9f16uV7tiOuaV7u3+tj1z4irfmCpeXaQvuIuFmuPu0j4ma5jr5eeh5G9u/fLzU1NZKYmNhguT7X/iPN0eWBlFe5ubnmHpPvkZycLG7QzlFulmvsZN+AAi3X2MmScqDl6tPOqm6Wa0w7q7pZrjHtfOVmuca0U6Ob5RAcvK5XL9+zHXFN83L/Xh+7dlZ1s1xj2lnVzXL1aWdVN8t19PUybIb25uTkmM4uvkdxcbEr+9Ve2m6Wa64zmpvlmuu05Ga5+nTUjJvlGtNRM26Wa0x7gbtZrjEdXeFmOQQHr+vVy/dsR1zTvNy/18euo2bcLNeYjppxs1x9OmrGzXIdfb1si4A+FRMSEiQqKkpKS0sbLNfnSUlJzW6jywMpr2JiYkyv2/oPN+hwMTfLNaZDYN0s15gOBXSzXEceuw7fdbNcYzoczc1yjekwTzfLITh4Xa9evmc74prm5f69PnYdvqujZlqi67VcW+jwXTfL1afDd90s19HXS8/DSHR0tAwdOlTy8/PrltXW1prnaWlpzW6jy+uXV5s2bfJb3ks6bl2Hi7VE17d1fLvOI3Kyoeu6vq3zjeicBCdrVdH1bZm7QOcRac0bt63zjeg8Ijp8tyW6vq3zjei4eB2O1hJd39bx8zrfhA7zbImuZ76R0OJ1vXr5nu2Ia5qX+/f62HUeER2+2xJd39b5RnQeER2+2xJd35b5Rk6Lizlpa5mub+t8I15fL9si4FrQYb0rV66Up59+Wnbs2CHTpk2TyspKM7pGZWZmmtssPrfddpts3LhRHnroIdm5c6fMnz9f3nvvPbn11lvFBh237u8N4Ma4dp1HxN9r2415RnROAn8Xt/bOWaDziPgLJG7MM6LziPgLJG7MM6Lj4v29wdwYN6/zTfj74GKekdDldb16+Z7tiGual/v3+th1HpFfX9a/yXVNn+vy9s4zovOI+Ask7Z1n5MP5GX4DiRvzjHh9veyQSc90WK5v0rMhQ4bIH/7wB0lNTTXrrrjiCunXr5+sWbOmwaRns2fPrpv0bPHixVYnPVPMwOofM7C2jBlYwxMzsNrbPzOwhu8MrK39/G5TGOloXoQRAADgLc9mYAUAAHATYQQAAFhFGAEAAFYRRgAAgFWEEQAAYBVhBAAAWEUYAQAAVhFGAACAVYQRAABglXtzcHvIN0mszuQGAABCg+9z+2STvYdEGDl06JD5Nzk52fahAACANnyO67TwIf23aWpra+Xrr7+WU045RSIiTvJ37gNMbBpwiouLO8XfvOlM58u5hq/OdL6ca/jqLOfrOI4JIn369JHIyMjQbhnREzjjjDM827++EML5xdCZz5dzDV+d6Xw51/DVGc43voUWER86sAIAAKsIIwAAwKpOHUZiYmJk3rx55t/OoDOdL+cavjrT+XKu4auzne/JhEQHVgAAEL46dcsIAACwjzACAACsIowAAACrCCMAAMCqsA8j9913n4wcOVK6d+8uPXv2bLZMUVGRjB071pTp3bu33HnnnXLixIkW93vgwAG54YYbzGQ1ut9JkybJ4cOHJVhs3rzZzFbb3OPdd9/1u90VV1zRpPzUqVMlFPTr16/Jsd9///0tbnPs2DG55ZZb5Lvf/a706NFDfvrTn0ppaakEsz179pjXW//+/aVbt25yzjnnmF751dXVLW4XSnWbl5dn6jM2NlZSU1Nl27ZtLZZ/4YUX5IILLjDlL7roItmwYYMEu9zcXBk+fLiZWVqvO+PGjZNdu3a1uM2aNWua1KGec7CbP39+k+PW+gq3Om3pWqQPvdaEU726KezDiF6gf/7zn8u0adOaXV9TU2OCiJbbunWrPP300+aFMXfu3Bb3q0Hkk08+kU2bNslf//pXeeutt2TKlCkSLDSAffPNNw0eN998s/kAGzZsWIvbTp48ucF2ixcvllBx7733Njj26dOnt1h+xowZ8pe//MVc+N58803zZwd+8pOfSDDbuXOn+RMJTzzxhHkNPvzww7JixQq5++67T7ptKNTtunXrJDs72wSs7du3S0pKimRkZEhZWVmz5fV9O2HCBBPQ3n//ffOhro+PP/5Ygpm+3vTD6e233zbXkePHj8vo0aOlsrKyxe30C1D9Oty7d6+EggsvvLDBcW/ZssVv2VCtUx/9wlf/XLV+lX4WhVu9usbpJJ566iknPj6+yfINGzY4kZGRTklJSd2yxx9/3ImLi3Oqqqqa3denn36qw6Gdd999t27Zq6++6kRERDhfffWVE4yqq6ud0047zbn33ntbLHf55Zc7t912mxOKzjrrLOfhhx9udfmDBw86Xbt2dV544YW6ZTt27DB1W1BQ4ISSxYsXO/379w+Luh0xYoRzyy231D2vqalx+vTp4+Tm5jZb/he/+IUzduzYBstSU1OdX//6104oKSsrM6+9N998M+DrWLCbN2+ek5KS0ury4VKnPvq+O+ecc5za2tqwqlc3hX3LyMkUFBSYJsDExMS6ZfotTP+IkX7r9LeN3pqp38KQnp5u/obOO++8I8HolVdekW+//VaysrJOWvbZZ5+VhIQEGTRokOTk5MiRI0ckVOhtGb3lcvHFF8uSJUtavN1WWFhovo1q3flos/CZZ55p6jiUlJeXS69evUK+brWFUuulfp3o+0qf+6sTXV6/vO89HIp1qE5Wj3o7+KyzzjJ/ZO1HP/qR3+tUsPnnP/9p/lja2WefbVqW9fa4P+FSp77X9DPPPCO/+tWvWvxDr4dDtF7dEhJ/KM9LJSUlDYKI8j3Xdf620Xu89XXp0sVcRPxtY9uqVavMm/lkf3Dw+uuvN28IvWh8+OGHMnPmTHMf+6WXXpJg99vf/lYuueQSUw/azKsfttrcuXTp0mbLa11FR0c36Uuk9R+s9dic3bt3y/Lly+XBBx8M+brdv3+/uXXa3HtSb08F8h4OpTrU22633367XHrppSYo+nP++efL6tWrZfDgwSa8aJ3rLVn94PLyj4m2l/b70dvfevz6nlywYIGMGjXK3HbRPjPhWKc+f/rTn+TgwYNy0003hV29usoJQTNnzjTNmS09tLm9Nc1gkydPdkaPHt1gWWVlpdmH3sJpzn333eecd955TZbrbZDHHnvMCbZzLy4uNreiXnzxxYB/Xn5+vtnn7t27HRvacr4+q1atcrp06eIcO3as2fXPPvusEx0d3WT58OHDnbvuussJhXP917/+ZZp/J02aFHJ12xy9zanHtHXr1gbL77zzTnP7pjl6q+25555rsCwvL8/p3bu3EyqmTp1qbjPqezXQ269a/7Nnz3ZCyb///W9zK/yPf/xj2Napj36+/PCHP+wU9doeIdkycscdd7SYMpU2BbZGUlJSk576vtEUus7fNo070+ntAB1h428bm+f+1FNPmVsX1113XZu+0fi+feuojVCqaz12rRcdfaLfPBrTutImVP3WUr91ROvf63p041y1s+2VV15pvkE9+eSTIVe3zdFbSFFRUU1GNLVUJ7o8kPLB5tZbb63rBB/ot+CuXbuaW5Jah6FE32/nnXee3+MO9Tr10U6or7/+esCtj11DtF7bxekkTtaBtbS0tG7ZE088YVK7v2/Uvg6s7733Xt2y1157LSg7sGqHKe3YeMcdd7Rp+y1btphz/cc//uGEmmeeecbU7YEDB1rswFq/xWjnzp0h0YFVW0TOPfdc55e//KVz4sSJsKpbbQG59dZbG3Rg7du3b4sdWBt/80xLSwv6zo763tSOuto597PPPmvTPrTuzz//fGfGjBlOKDl06JBz6qmnOo888khY1WlzHXeTkpKc48ePd4p6bY+wDyN79+513n//fWfBggVOjx49zP/rQ98MvkofNGiQaUr74IMPnI0bN5rbLTk5OXX7eOedd8wLQz8AfK6++mrn4osvNuv0oq4fDBMmTHCCzeuvv+73Voaej56XnoPS5nodbaMh68svv3T+/Oc/O2effbZz2WWXOcFOm/V1JI3W4eeff26CiNZjZmam3/P1NY+feeaZzt/+9jdz3nrB00cw0/P43ve+5/zgBz8w///NN9/UPcKhbteuXevExMQ4a9asMcF/ypQpTs+ePetGvN14443OrFmz6sr//e9/N7fjHnzwQfM61w8ADZkfffSRE8ymTZtmviBt3ry5QR0eOXKkrkzjc9XrmH7x0dd4YWGhCaOxsbHOJ5984gQz/TKk56mvPa2v9PR0JyEhwYwgCqc6rU9DtF5b9PZrY+FSr24K+zAyceLEZu+9v/HGG3Vl9uzZ41xzzTVOt27dzBtE3zj1k6yW1W30jeTz7bffmvChAUdbUbKysuoCTjDRYxw5cmSz6/R86v8uioqKzIdTr169zIeBfuDpvfry8nIn2OkbWIf+6cVd38QDBgxwFi1a1KB1q/H5qqNHjzq/+c1vzLe07t27Oz/+8Y8bfKgHayufvz4l4VK3y5cvNxdy7dOjLSVvv/12gyHK+r6u7/nnnzf9uLT8hRde6Kxfv94Jdv7qUOvX37nefvvtdb+XxMREZ8yYMc727dudYDd+/Hjn9NNPN8etrVz6vH5fpXCp0/o0XGh97tq1q8m6cKlXN0Xof2zfKgIAAJ1Xp59nBAAA2EUYAQAAVhFGAACAVYQRAABgFWEEAABYRRgBAABWEUYAAIBVhBEAAGAVYQQAAFhFGAEAAFYRRgAAgFWEEQAAIDb9DxJYoFsZzAoOAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 15
  },
  {
   "cell_type": "code",
   "id": "6e2983a2b1f3348b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T14:54:32.813976Z",
     "start_time": "2025-06-19T14:54:28.257864Z"
    }
   },
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "# 数据准备\n",
    "x = np.random.randint(-10, 10, 150)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y2 = np.zeros(50)\n",
    "y = np.concatenate((y0, y1, y2))  # 合并两个数组\n",
    "\n",
    "# 将 NumPy 数组转换为 PyTorch 张量\n",
    "x_tensor = torch.tensor(x, dtype=torch.float32)\n",
    "y_tensor = torch.tensor(y, dtype=torch.float32)\n",
    "\n",
    "dataset = TensorDataset(x_tensor, y_tensor)\n",
    "dataloader = DataLoader(dataset, batch_size=5, shuffle=True)\n",
    "\n",
    "w1 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w2 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w3 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w4 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b1 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b2 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b3 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "\n",
    "optimizer = torch.optim.SGD([w1, w2, w3, w4, b1, b2, b3], lr=0.01)\n",
    "criterion = torch.nn.MSELoss()\n",
    "\n",
    "\n",
    "def sigmoid(x):\n",
    "    return 1 / (1 + torch.exp(-x))\n",
    "\n",
    "\n",
    "# 训练循环\n",
    "epochs = 1000\n",
    "for epoch in range(epochs):\n",
    "    for x_batch, y_batch in dataloader:\n",
    "        s1 = sigmoid(w1 * x_batch + b1)\n",
    "        s2 = sigmoid(w2 * x_batch + b2)\n",
    "        y_predict = w3 * s1 + w4 * s2 + b3\n",
    "        loss = criterion(y_predict, y_batch)  # (sigmoid(w * x + b) - y)**2\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "# 最终预测结果\n",
    "sigmoid1 = sigmoid(w1 * x_tensor + b1)\n",
    "sigmoid2 = sigmoid(w2 * x_tensor + b2)\n",
    "final_prediction = w3 * sigmoid1 + w4 * sigmoid2 + b3\n",
    "\n",
    "# 绘图\n",
    "plt.scatter(x, y)\n",
    "plt.plot(x, final_prediction.detach().numpy(), color='r')\n",
    "plt.show()\n"
   ],
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 3
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T15:07:03.169304Z",
     "start_time": "2025-06-19T15:07:02.230996Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "# 数据准备\n",
    "x = np.random.randint(-10, 10, 200)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y2 = np.zeros(50)\n",
    "y3 = np.ones(50)\n",
    "y = np.concatenate((y0, y1, y2, y3))  # 合并两个数组\n",
    "plt.scatter(x, y)\n",
    "plt.show()"
   ],
   "id": "e4ee20d71de62980",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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ADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAACiL4zk5+dL7969JTk5WYYNGyZbtmxpsvw333wjN998s5x44omSlJQkp59+uqxbt66l2wwAAGJIh2AXWLNmjeTk5Mjy5ctdEFmyZIlkZ2fLjh07pHv37o3KV1VVyY9//GM378UXX5SePXvKF198IV27dg3VPgAAgCgW53meF8wCGkCGDBkijz76qHteU1MjvXr1kmnTpsmsWbMaldfQsmjRItm+fbt07NixRRt54MABSU1NlfLycklJSWnROgAAQNtq7ud3ULdptJajsLBQsrKy/reC+Hj3vKCgwO8yr7zyigwfPtzdpklPT5cBAwbIfffdJ9XV1QH/TmVlpduBug8AABCbggoj+/btcyFCQ0Vd+rykpMTvMrt27XK3Z3Q5bScyZ84ceeihh+See+4J+Hfy8vJckvI9tOYFAADEprD3ptHbONpe5IknnpBBgwbJmDFj5M4773S3bwLJzc11VTq+R3Fxcbg3EwAAREMD1rS0NElISJDS0tJ60/V5RkaG32W0B422FdHlfPr37+9qUvS2T2JiYqNltMeNPgAAQOwLqmZEg4PWbmzYsKFezYc+13Yh/lxwwQWyc+dOV87n008/dSHFXxABAADtS9C3abRb74oVK+Spp56Sbdu2yZQpU6SiokImTJjg5o8bN87dZvHR+fv375fp06e7ELJ27VrXgFUbtAIAAAQ9zoi2+di7d6/MnTvX3WoZOHCgrF+/vrZRa1FRketh46ONT1999VWZMWOGnHPOOW6cEQ0mM2fODO2eAACA9jHOiAXGGQEAIPqEZZwRAACAUCOMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAIPrCSH5+vvTu3VuSk5Nl2LBhsmXLlmYt99xzz0lcXJyMHj26JX8WAADEoKDDyJo1ayQnJ0fmzZsnW7dulczMTMnOzpaysrIml9u9e7f87ne/k4suuqg12wsAANp7GFm8eLFMmjRJJkyYIGeeeaYsX75cOnfuLKtWrQq4THV1tVx77bWyYMEC6du3b2u3GQAAtNcwUlVVJYWFhZKVlfW/FcTHu+cFBQUBl7vrrruke/fuMnHixGb9ncrKSjlw4EC9BwAAiE1BhZF9+/a5Wo709PR60/V5SUmJ32U2bdokK1eulBUrVjT77+Tl5Ulqamrto1evXsFsJgAAiCJh7U1z8OBBue6661wQSUtLa/Zyubm5Ul5eXvsoLi4O52YCAABDHYIprIEiISFBSktL603X5xkZGY3Kf/bZZ67h6hVXXFE7raam5v//4Q4dZMeOHXLqqac2Wi4pKck9AABA7AuqZiQxMVEGDRokGzZsqBcu9Pnw4cMblT/jjDPkww8/lA8++KD2ceWVV8qll17q/p/bLwAAIKiaEaXdesePHy+DBw+WoUOHypIlS6SiosL1rlHjxo2Tnj17unYfOg7JgAED6i3ftWtX92/D6QAAoH0KOoyMGTNG9u7dK3PnznWNVgcOHCjr16+vbdRaVFTketgAAAA0R5zneZ5EOO3aq71qtDFrSkqK9eYAAIAQfn5ThQEAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMEUYAQAApggjAADAFGEEAACYIowAAABThBEAABB9YSQ/P1969+4tycnJMmzYMNmyZUvAsitWrJCLLrpIjj/+ePfIyspqsjwAAGhfgg4ja9askZycHJk3b55s3bpVMjMzJTs7W8rKyvyW37hxo4wdO1beeOMNKSgokF69esmIESPkyy+/DMX2AwCAKBfneZ4XzAJaEzJkyBB59NFH3fOamhoXMKZNmyazZs065vLV1dWuhkSXHzduXLP+5oEDByQ1NVXKy8slJSUlmM0FAABGmvv5HVTNSFVVlRQWFrpbLbUriI93z7XWozkOHTokR44ckW7dugUsU1lZ6Xag7gMAAMSmoMLIvn37XM1Genp6ven6vKSkpFnrmDlzpvTo0aNeoGkoLy/PJSnfQ2teAABAbGrT3jT333+/PPfcc/Lyyy+7xq+B5Obmuiod36O4uLgtNxMAALShDsEUTktLk4SEBCktLa03XZ9nZGQ0ueyDDz7owsjrr78u55xzTpNlk5KS3AMAAMS+oGpGEhMTZdCgQbJhw4baadqAVZ8PHz484HILFy6Uu+++W9avXy+DBw9u3RYDAID2WzOitFvv+PHjXagYOnSoLFmyRCoqKmTChAluvvaQ6dmzp2v3oR544AGZO3euPPvss25sEl/bki5durgHAABo34IOI2PGjJG9e/e6gKHBYuDAga7Gw9eotaioyPWw8XnsscdcL5yrr7663np0nJL58+eHYh8AAEB7GmfEAuOMAAAQfcIyzggAAECoEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAUx2kndpZ8q1c/vs35UiNSMd4kb/+9mL5QUaXkK2//NAR+fXqLfJV+WHpkZosq64fKqmdO4Zs/V/u/85tf0VltXwvKcFtf89unUKy7s/LKuSyR96UympPkhLiZP30i6VP9+9JtLw2Jd8clp8sfUsOHD4qKckd5C/TfigZXZNDtn7YCee5E873VFtcc6J9/Wjf4jzP84JdKD8/XxYtWiQlJSWSmZkpS5culaFDhwYs/8ILL8icOXNk9+7dctppp8kDDzwgI0eObPbfO3DggKSmpkp5ebmkpKRIa/WZtVb87XScfhDfP6rV67940d/ki6+/azT9lO93kjdv+z+tXv/pd66TqurGe5CYECef3tv819WfvrlrpcbPixMfJ7IrL/Jfm/5z/irf6dWygU4d42Xb3Ze3ev2wE85zJ5zvqba45kT7+hG7mvv5HfRtmjVr1khOTo7MmzdPtm7d6sJIdna2lJWV+S2/efNmGTt2rEycOFHef/99GT16tHt89NFHYiHQm0p5/53fGoEumEqn6/xwXDSVTtf5oQ4iSqfr/Eh+bQIFEaXTdT6iUzjPnXC+p9rimhPt6wdaFEYWL14skyZNkgkTJsiZZ54py5cvl86dO8uqVav8ln/kkUfksssuk9tuu0369+8vd999t5x33nny6KOPtvkR0GrGY1UDef8t19Iq5EAXTB+dr+VaWo0c6KLpo/O1XEtuzQQKIj46X8tF4mujt2YCBREfna/lEF3Cee6E8z3VFtecaF8/0KIwUlVVJYWFhZKVlfW/FcTHu+cFBQV+l9HpdcsrrUkJVF5VVla6qp26j1DQ+52hLNeQ3ssOZbm23H5tIxLKcm392mgbkVCWQ+QI57kT7msC6wfCEEb27dsn1dXVkp6eXm+6Ptf2I/7o9GDKq7y8PHePyffo1auXhMIxvjgHXa4hbVQXynINacO6UJarSxurhrJcW7822lg1lOUQOcJ57oTzPdUW15xoXz8Q0V17c3NzXWMX36O4uDgk69UW4KEs15C27g9luYa0hX8oy9WlvWZCWa6tXxvtNRPKcogc4Tx3wvmeaotrTrSvH/AJ6hRKS0uThIQEKS0trTddn2dkZPhdRqcHU14lJSW5Vrd1H6GgXdFCWa4h7WYYynJtuf3afTeU5dr6tdHuu6Esh8gRznMn3NcE1g+EIYwkJibKoEGDZMOGDbXTampq3PPhw4f7XUan1y2vXnvttYDlw0n7xB/re73Ob2nfeR3vQLsZNkXnt3RcBB3zQLsaNkXnt2RsBB1HRLvvNkXnt3S8kXC/NjqOiHbfbYrOZ7yR6BPOcyec76m2uOZE+/oBn6Ar17Rb74oVK+Spp56Sbdu2yZQpU6SiosL1rlHjxo1zt1l8pk+fLuvXr5eHHnpItm/fLvPnz5f33ntPpk6dKha0T3ygN1co+szreAeBLpyhGA9BxzwIdPFs7ZgIOo5IoEASinFGwv3a6DgigQIJ44xEt3CeO+F8T7XFNSfa1w+0eNAz7ZbrG/Rs4MCB8vvf/16GDRvm5l1yySXSu3dvWb16db1Bz2bPnl076NnChQtNBz1TjMAaGCOwIlIxAmvsrh+xqbmf3y0KI20tHGEEAABE6QisAAAAoUQYAQAApggjAADAFGEEAACYIowAAABThBEAAGCKMAIAAEwRRgAAgCnCCAAAMBUVv6fuGyRWR3IDAADRwfe5fazB3qMijBw8eND926tXL+tNAQAALfgc12Hho/q3aWpqauSrr76S4447TuLijvWD1sElNg04xcXF7eI3b9rT/rKvsas97S/7Grvay/56nueCSI8ePSQ+Pj66a0Z0B0466aSwrV9PhFg+Gdrz/rKvsas97S/7Grvaw/6mNlEj4kMDVgAAYIowAgAATLXrMJKUlCTz5s1z/7YH7Wl/2dfY1Z72l32NXe1tf48lKhqwAgCA2NWua0YAAIA9wggAADBFGAEAAKYIIwAAwFTMh5F7771Xzj//fOncubN07drVb5mioiIZNWqUK9O9e3e57bbb5OjRo02ud//+/XLttde6wWp0vRMnTpRvv/1WIsXGjRvdaLX+Hu+++27A5S655JJG5SdPnizRoHfv3o22/f77729ymcOHD8vNN98s3//+96VLly7y85//XEpLSyWS7d69251vffr0kU6dOsmpp57qWuVXVVU1uVw0Hdv8/Hx3PJOTk2XYsGGyZcuWJsu/8MILcsYZZ7jyZ599tqxbt04iXV5engwZMsSNLK3XndGjR8uOHTuaXGb16tWNjqHuc6SbP39+o+3W4xVrx7Spa5E+9FoTS8c1lGI+jOgF+he/+IVMmTLF7/zq6moXRLTc5s2b5amnnnInxty5c5tcrwaRjz/+WF577TX5y1/+Im+99ZbceOONEik0gO3Zs6fe44YbbnAfYIMHD25y2UmTJtVbbuHChRIt7rrrrnrbPm3atCbLz5gxQ/785z+7C9+bb77pfnbgZz/7mUSy7du3u59IePzxx905+PDDD8vy5cvljjvuOOay0XBs16xZIzk5OS5gbd26VTIzMyU7O1vKysr8ltf37dixY11Ae//9992Huj4++ugjiWR6vumH09tvv+2uI0eOHJERI0ZIRUVFk8vpF6C6x/CLL76QaHDWWWfV2+5NmzYFLButx9RHv/DV3Vc9vko/i2LtuIaM1048+eSTXmpqaqPp69at8+Lj472SkpLaaY899piXkpLiVVZW+l3XJ598ot2hvXfffbd22l//+lcvLi7O+/LLL71IVFVV5Z1wwgneXXfd1WS5iy++2Js+fboXjU455RTv4Ycfbnb5b775xuvYsaP3wgsv1E7btm2bO7YFBQVeNFm4cKHXp0+fmDi2Q4cO9W6++eba59XV1V6PHj28vLw8v+V/+ctfeqNGjao3bdiwYd5vfvMbL5qUlZW5c+/NN98M+joW6ebNm+dlZmY2u3ysHFMffd+deuqpXk1NTUwd11CK+ZqRYykoKHBVgOnp6bXT9FuY/oiRfusMtIzemqlbw5CVleV+Q+edd96RSPTKK6/I119/LRMmTDhm2WeeeUbS0tJkwIABkpubK4cOHZJoobdl9JbLueeeK4sWLWrydlthYaH7NqrHzkerhU8++WR3jKNJeXm5dOvWLeqPrdZQ6nGpe0z0faXPAx0TnV63vO89HI3HUB3rOOrt4FNOOcX9yNpPf/rTgNepSPOvf/3L/Vha3759Xc2y3h4PJFaOqe+cfvrpp+XXv/51kz/0+m2UHtdQiYofygunkpKSekFE+Z7rvEDL6D3eujp06OAuIoGWsbZy5Ur3Zj7WDw5ec8017g2hF41//vOfMnPmTHcf+6WXXpJI99vf/lbOO+88dxy0mlc/bLW6c/HixX7L67FKTExs1JZIj3+kHkd/du7cKUuXLpUHH3ww6o/tvn373K1Tf+9JvT0VzHs4mo6h3na75ZZb5IILLnBBMZB+/frJqlWr5JxzznHhRY+53pLVD65w/phoa2m7H739rduv78kFCxbIRRdd5G67aJuZWDymPn/84x/lm2++keuvvz7mjmtIeVFo5syZrjqzqYdWtzenGmzSpEneiBEj6k2rqKhw69BbOP7ce++93umnn95out4GWbZsmRdp+15cXOxuRb344otB/70NGza4de7cudOz0JL99Vm5cqXXoUMH7/Dhw37nP/PMM15iYmKj6UOGDPFuv/12Lxr29d///rer/p04cWLUHVt/9DanbtPmzZvrTb/tttvc7Rt/9Fbbs88+W29afn6+1717dy9aTJ482d1m1PdqsLdf9fjPnj3biyb/+c9/3K3wP/zhDzF7TH308+UnP/lJuziurRGVNSO33nprkylTaVVgc2RkZDRqqe/rTaHzAi3TsDGd3g7QHjaBlrHc9yeffNLdurjyyitb9I3G9+1be21E07HWbdfjor1P9JtHQ3qstApVv7XUrR3R4x/u4xiKfdXGtpdeeqn7BvXEE09E3bH1R28hJSQkNOrR1NQx0enBlI80U6dOrW0EH+y34I4dO7pbknoMo4m+304//fSA2x3tx9RHG6G+/vrrQdc+dozS49oqXjtxrAaspaWltdMef/xxl9oDfaP2NWB97733aqe9+uqrEdmAVRtMacPGW2+9tUXLb9q0ye3rP/7xDy/aPP300+7Y7t+/v8kGrHVrjLZv3x4VDVi1RuS0007zfvWrX3lHjx6NqWOrNSBTp06t14C1Z8+eTTZgbfjNc/jw4RHf2FHfm9pQVxvnfvrppy1ahx77fv36eTNmzPCiycGDB73jjz/ee+SRR2LqmPpruJuRkeEdOXKkXRzX1oj5MPLFF19477//vrdgwQKvS5cu7v/1oW8G30EfMGCAq0r74IMPvPXr17vbLbm5ubXreOedd9yJoR8APpdddpl37rnnunl6UdcPhrFjx3qR5vXXXw94K0P3R/dL90Fpdb32ttGQ9fnnn3t/+tOfvL59+3o//OEPvUin1frak0aP4WeffeaCiB7HcePGBdxfX/X4ySef7P3tb39z+60XPH1EMt2PH/zgB96PfvQj9/979uypfcTCsX3uuee8pKQkb/Xq1S7433jjjV7Xrl1re7xdd9113qxZs2rL//3vf3e34x588EF3nusHgIbMDz/80ItkU6ZMcV+QNm7cWO8YHjp0qLZMw33V65h+8dFzvLCw0IXR5ORk7+OPP/YimX4Z0v3Uc0+PV1ZWlpeWluZ6EMXSMa1LQ7ReW/T2a0OxclxDKebDyPjx4/3ee3/jjTdqy+zevdu7/PLLvU6dOrk3iL5x6iZZLavL6BvJ5+uvv3bhQwOO1qJMmDChNuBEEt3G888/3+883Z+6r0VRUZH7cOrWrZv7MNAPPL1XX15e7kU6fQNr1z+9uOubuH///t59991Xr3ar4f6q7777zrvpppvct7TOnTt7V111Vb0P9Uit5QvUpiRWju3SpUvdhVzb9GhNydtvv12vi7K+r+t6/vnnXTsuLX/WWWd5a9eu9SJdoGOoxzfQvt5yyy21r0t6ero3cuRIb+vWrV6kGzNmjHfiiSe67dZaLn1et61SrBzTujRc6PHcsWNHo3mxclxDKU7/Y32rCAAAtF/tfpwRAABgizACAABMEUYAAIApwggAADBFGAEAAKYIIwAAwBRhBAAAmCKMAAAAU4QRAABgijACAABMEUYAAIApwggAABBL/w8fFjbwgg8BLQAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 2
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-19T15:07:13.303025Z",
     "start_time": "2025-06-19T15:07:05.207760Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 将 NumPy 数组转换为 PyTorch 张量\n",
    "x_tensor = torch.tensor(x, dtype=torch.float32)\n",
    "y_tensor = torch.tensor(y, dtype=torch.float32)\n",
    "\n",
    "dataset = TensorDataset(x_tensor, y_tensor)\n",
    "dataloader = DataLoader(dataset, batch_size=5, shuffle=True)\n",
    "\n",
    "w1 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w2 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w3 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w4 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w5 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "w6 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b1 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b2 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b3 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "b4 = torch.nn.Parameter(torch.rand(1), requires_grad=True)\n",
    "\n",
    "optimizer = torch.optim.SGD([w1, w2, w3, w4, w5, w6, b1, b2, b3, b4], lr=0.01)\n",
    "criterion = torch.nn.MSELoss()\n",
    "\n",
    "\n",
    "def sigmoid(x):\n",
    "    return 1 / (1 + torch.exp(-x))\n",
    "\n",
    "\n",
    "# 训练循环\n",
    "epochs = 1000\n",
    "for epoch in range(epochs):\n",
    "    for x_batch, y_batch in dataloader:\n",
    "        s1 = sigmoid(w1 * x_batch + b1)\n",
    "        s2 = sigmoid(w2 * x_batch + b2)\n",
    "        s3 = sigmoid(w3 * x_batch + b3)\n",
    "        y_predict = w4 * s1 + w5 * s2 + w6 * s3 + b4\n",
    "        loss = criterion(y_predict, y_batch)  # (sigmoid(w * x + b) - y)**2\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "# 最终预测结果\n",
    "sigmoid1 = sigmoid(w1 * x_tensor + b1)\n",
    "sigmoid2 = sigmoid(w2 * x_tensor + b2)\n",
    "sigmoid3 = sigmoid(w3 * x_tensor + b3)\n",
    "final_prediction = w4 * sigmoid1 + w5 * sigmoid2 + w6 * sigmoid3 + b4\n",
    "\n",
    "# 绘图\n",
    "plt.scatter(x, y)\n",
    "plt.plot(x, final_prediction.detach().numpy(), color='r')\n",
    "plt.show()\n"
   ],
   "id": "84ce8b9d6d66eb2d",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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+69bt854rr///rvHbj755BPjtT137lyqCayJe4x27dpliwRW6RGpUqWKp0uXLp7r16876rWVHpB+/folSWAtVapUqgmsyX95Nm3a1PLJjvLZlERdSc7ds2dPQI8hr321atU8gwYN8tjJhQsXPAUKFPC8++67jnpNU0rcLV68uOfatWuueF0zwvHByKFDhzxbt271vPLKK548efIY23KSD4P3Ra9Vq5bRlbZt2zbPihUrjOGWYcOGxT/Gxo0bjTeGfAF43X333Z569eoZt8lBXb4Yunbt6rGaVatW+RzKkOcjz0ueg5DuepltI0HWgQMHPEuWLPFUrFjRc9ttt3msTrr1ZSaNvIb79u0zAhF5Hbt37+7z+Xq7x8uWLetZs2aN8bzlgCcnK5PnUblyZc+dd95pbB8/fjz+5ITXdt68eZ6wsDDPnDlzjMC/d+/envz588fPeHvkkUc8Q4cOjd//559/Nobj3nrrLeN9Ll8AEmT++eefHivr27ev8QNp7dq1SV7DS5cuxe+T/LnKcUx++Mh7fPPmzUYwmiNHDs+OHTs8ViY/huR5yntPXq+WLVt6ChcubMwgctJrmpgE0XJskeHX5JzyuprJ8cHIo48+muLY+/fffx+/z8GDBz1t2rTx5MyZ0/iAyAcncSQr+8p95IPkdfbsWSP4kABHelF69OgRH+BYibSxWbNmKd4mzyfx3yIiIsL4cipYsKDxZSBfeDJWHxkZ6bE6+QDL1D85uMuHuHr16p7XX389Se9W8ucrLl++7HnqqaeMX2m5cuXydOjQIcmXulV7+XzllDjltZ08ebJxIJecHukp+eWXX5JMUZbPdWILFiww8rhk/5o1a3qWLVvmsTpfr6G8vr6e68CBA+P/LsWKFfO0bdvWs2XLFo/Vde7c2VOiRAmj3dLLJZcT5yo55TVNTIILeT137959w21OeV3NlEX+0T1URERERO7l+jojREREpBeDESIiItKKwQgRERFpxWCEiIiItGIwQkRERFoxGCEiIiKtGIwQERGRVgxGiIiISCsGI0RERKQVgxEiIiLSisEIERERacVghIiIiKDT/wMsN5JqhABM6QAAAABJRU5ErkJggg=="
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 3
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T00:25:29.424027Z",
     "start_time": "2025-06-20T00:25:22.194049Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "\n",
    "# 数据准备\n",
    "x = np.random.randint(-10, 10, 200)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y2 = np.zeros(50)\n",
    "y3 = np.ones(50)\n",
    "y = np.concatenate((y0, y1, y2, y3))  # 合并两个数组\n",
    "\n",
    "# [1,2]  -> (2, 1)\n",
    "# 将 NumPy 数组转换为 PyTorch 张量 (1, 200) -> (200, 1)\n",
    "x_tensor = torch.tensor(x, dtype=torch.float32).view(-1, 1)\n",
    "y_tensor = torch.tensor(y, dtype=torch.float32).view(-1, 1)\n",
    "\n",
    "dataset = TensorDataset(x_tensor, y_tensor)\n",
    "dataloader = DataLoader(dataset, batch_size=5, shuffle=True)\n",
    "\n",
    "\n",
    "# 定义神经网络模型\n",
    "class SimpleModel(torch.nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.input = torch.nn.Linear(1, 4)  # 隐藏层4个神经元，线性层\n",
    "        self.output = torch.nn.Linear(4, 1)  # 输出层，线性层 w1x1+w2x2+b\n",
    "\n",
    "    def forward(self, x):\n",
    "        y = torch.sigmoid(self.input(x))\n",
    "        return self.output(y)\n",
    "\n",
    "\n",
    "model = SimpleModel()\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.01)\n",
    "criterion = torch.nn.MSELoss()\n",
    "\n",
    "# 训练循环\n",
    "epochs = 1000\n",
    "for epoch in range(epochs):\n",
    "    for x_batch, y_batch in dataloader:\n",
    "        y_predict = model(x_batch)\n",
    "        loss = criterion(y_predict, y_batch)\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "# 预测\n",
    "# view的参数-1表示自动计算维度，1表示一维向量，将 x_tensor的形状变为 (100, 1)，因为模型的第一层是1*4\n",
    "final_prediction = model(x_tensor)\n",
    "\n",
    "# 绘图\n",
    "plt.clf()\n",
    "plt.scatter(x, y)\n",
    "plt.plot(x, final_prediction.detach().numpy(), color='r')\n",
    "plt.show()"
   ],
   "id": "1baf40dab2be1fdc",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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W+e69tprXb169XKZ0fLlyz2mV+Q1yWuT1yEkhSCzkX799VfXvn37XN99952rWrVqrtatW7vMTNIMMtNIjuHff//t+vTTT7Xj2KdPH4+v1d1dX6lSJdfKlSu119y8eXPtYmbyOmrUqOG67bbbtO2jR49eudjhuH755ZeuyMhI15w5c7SZfQMHDnQVK1bsyozA3r17u0aPHn1l//Xr12vpwWnTpml/4zKrRVIO27dvd5nZ4MGDtVT26tWrMx3D8+fPX9kn62uV97GlS5dqf+ObN2923Xfffa78+fO7duzY4TK7J598Unut8vcnx6xdu3aukiVLarOs7HRcM86Sk/cWSQdnZafjGkwMXjLo27dvtmMHVq1adWWf/fv3uzp16uQqUKCAdjLJSXbp0qUr98u+8hg56dxOnTqlBSsSEEnetl+/flcCIrORdrZo0SLb++Q1Zfz/iIuL0z7QSpQooX2AyIekjDdISEhwmZmc8DKNUj4M5KSvU6eOa9KkSZnGu2R9reLChQuuIUOGuIoXL+4qWLCg64477sgUBJiRjN/yNCbGLsf1rbfe0t74ZUySjHX56aefMk35lvM6o6+++kobhyb716tXz7Vw4UKX2Xk6hnJ8Pb3WJ5544sr/S5kyZVydO3d2bdmyxWUFPXv2dJUrV05re3R0tHY943gruxxXNwlG5Hju3r37qvvsdFyDKUz+yV3fDREREVHosM4LERERWQqDFyIiIrIUBi9ERERkKQxeiIiIyFIYvBAREZGlMHghIiIiS2HwQkRERJbC4IWIiIgshcELERERWQqDFyIiIrIUBi9ERERkKQxeiIiICFby/2pumuxmi24qAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 18
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T00:09:24.391131Z",
     "start_time": "2025-06-20T00:09:24.386662Z"
    }
   },
   "cell_type": "code",
   "source": [
    "# 矩阵加法\n",
    "a = torch.tensor([[1, 2],\n",
    "                  [3, 4]])\n",
    "b = torch.tensor([[5, 6]])\n",
    "print(a + b)"
   ],
   "id": "d9082178fffbe9d",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[ 6,  8],\n",
      "        [ 8, 10]])\n"
     ]
    }
   ],
   "execution_count": 14
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T01:59:49.301963Z",
     "start_time": "2025-06-20T01:59:45.490690Z"
    }
   },
   "cell_type": "code",
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from torch.utils.data import TensorDataset, DataLoader\n",
    "from torch.utils.tensorboard import SummaryWriter\n",
    "\n",
    "# 数据准备\n",
    "x = np.random.randint(80, 100, 200)\n",
    "x.sort()\n",
    "y0 = np.zeros(50)\n",
    "y1 = np.ones(50)\n",
    "y2 = np.zeros(50)\n",
    "y3 = np.ones(50)\n",
    "y = np.concatenate((y0, y1, y2, y3))  # 合并两个数组\n",
    "\n",
    "# [1,2]  -> (2, 1)\n",
    "# 将 NumPy 数组转换为 PyTorch 张量 (1, 200) -> (200, 1)\n",
    "x_tensor = torch.tensor(x, dtype=torch.float32).view(-1, 1)\n",
    "y_tensor = torch.tensor(y, dtype=torch.float32).view(-1, 1)\n",
    "\n",
    "dataset = TensorDataset(x_tensor, y_tensor)\n",
    "dataloader = DataLoader(dataset, batch_size=5, shuffle=True)\n",
    "\n",
    "\n",
    "# 定义神经网络模型\n",
    "class SimpleModel(torch.nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.input = torch.nn.Linear(1, 4)  # 隐藏层4个神经元，线性层\n",
    "        self.output = torch.nn.Linear(4, 1)  # 输出层，线性层 w1x1+w2x2+b\n",
    "\n",
    "    def forward(self, x):\n",
    "        y = torch.relu(self.input(x))\n",
    "        return self.output(y)\n",
    "\n",
    "\n",
    "model = SimpleModel()\n",
    "optimizer = torch.optim.SGD(model.parameters(), lr=0.01)\n",
    "criterion = torch.nn.MSELoss()\n",
    "writer = SummaryWriter()\n",
    "\n",
    "# 训练循环\n",
    "epochs = 100\n",
    "for epoch in range(epochs):\n",
    "    for x_batch, y_batch in dataloader:\n",
    "        y_predict = model(x_batch)\n",
    "        loss = criterion(y_predict, y_batch)\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "\n",
    "        # tensorboard查看梯度分布\n",
    "        for name, param in model.named_parameters():\n",
    "            writer.add_histogram(name, param.grad, epoch)\n",
    "\n",
    "        optimizer.step()\n",
    "\n",
    "# 预测\n",
    "# view的参数-1表示自动计算维度，1表示一维向量，将 x_tensor的形状变为 (100, 1)，因为模型的第一层是1*4\n",
    "final_prediction = model(x_tensor)\n",
    "\n",
    "# 绘图\n",
    "plt.clf()\n",
    "plt.scatter(x, y)\n",
    "plt.plot(x, final_prediction.detach().numpy(), color='r')\n",
    "plt.show()"
   ],
   "id": "1b9847dadeb81a98",
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ],
      "image/png": "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9OnTY9SoUeV7H8lpp51W9sB573vfW45JsmbNmrK1JC1vDCUAQN/V6TAybdq02LRpU1xxxRWxfv36GD9+fCxdunT3S61r165t1hJy+eWXR11dXfnvc889F29729vKIHL11VdXtiYAQK9UV/SCZyWpa++wYcPKl1mHDh2a+3AAgAp+f/vbNABAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAvS+MLFy4MMaMGRODBg2KSZMmxcqVK/dY/qWXXorPfe5zcfDBB8fAgQPjiCOOiHvuuaerxwwA1JD+nd1g8eLFMWvWrFi0aFEZRG688caYOnVqPP7443HQQQe9qfzOnTvjD//wD8t1//iP/xijRo2KZ599Ng444IBK1QEA6MXqiqIoOrNBCiDHH3983HLLLeV8Q0NDjB49Oi688MKYPXv2m8qn0LJgwYJYvXp17LPPPl06yK1bt8awYcNiy5YtMXTo0C7tAwDoXh39/u7UY5rUyrFq1aqYMmXK73bQr185v2LFila3+cEPfhCTJ08uH9OMGDEi3v3ud8c111wTu3btavPn7Nixo6xA0wkAqE2dCiObN28uQ0QKFU2l+fXr17e6zVNPPVU+nknbpfdE5s6dG9dff3185StfafPnzJ8/v0xSjVNqeQEAalPVe9OkxzjpfZG//du/jQkTJsS0adPisssuKx/ftGXOnDllk07jtG7dumofJgDQG15gHT58eNTX18eGDRuaLU/zI0eObHWb1IMmvSuStmt09NFHly0p6bHPgAED3rRN6nGTJgCg9nWqZSQFh9S6sWzZsmYtH2k+vRfSmg984AOxZs2aslyjJ554ogwprQURAKBv6fRjmtSt97bbbotvfetb8dhjj8X5558f27Zti5kzZ5brp0+fXj5maZTWv/jii3HRRReVIWTJkiXlC6zphVYAgE6PM5Le+di0aVNcccUV5aOW8ePHx9KlS3e/1Lp27dqyh02j9PLpvffeGxdffHG85z3vKccZScHk0ksvrWxNAIC+Mc5IDsYZAYDepyrjjAAAVJowAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFn1j76qKCK2b899FADQMwwZElFXl+VH990wkoLIfvvlPgoA6BleeSVi332z/GiPaQCArPr36eaolAIBgCi/FzPpu2EkPRfL1BwFAPyOxzQAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAkJUwAgBkJYwAAFkJIwBAVsIIAJCVMAIAZCWMAAC9L4wsXLgwxowZE4MGDYpJkybFypUrO7TdXXfdFXV1dXHGGWd05ccCADWo02Fk8eLFMWvWrJg3b148/PDDMW7cuJg6dWps3Lhxj9s988wz8YUvfCE+9KEP7c3xAgB9PYzccMMNcd5558XMmTPjmGOOiUWLFsWQIUPijjvuaHObXbt2xVlnnRVf/vKX4/DDD9/bYwYA+moY2blzZ6xatSqmTJnyux3061fOr1ixos3t/uqv/ioOOuigOOecczr0c3bs2BFbt25tNgEAtalTYWTz5s1lK8eIESOaLU/z69evb3WbBx98MG6//fa47bbbOvxz5s+fH8OGDds9jR49ujOHCQD0IlXtTfPyyy/H2WefXQaR4cOHd3i7OXPmxJYtW3ZP69atq+ZhAgAZ9e9M4RQo6uvrY8OGDc2Wp/mRI0e+qfyTTz5Zvrh62mmn7V7W0NDw/39w//7x+OOPxzve8Y43bTdw4MByAgBqX6daRgYMGBATJkyIZcuWNQsXaX7y5MlvKn/UUUfFz3/+83jkkUd2T6effnp85CMfKf/b4xcAoFMtI0nq1jtjxow47rjjYuLEiXHjjTfGtm3byt41yfTp02PUqFHlex9pHJJ3v/vdzbY/4IADyn9bLgcA+qZOh5Fp06bFpk2b4oorrihfWh0/fnwsXbp090uta9euLXvYAAB0RF1RFEX0cKlrb+pVk15mHTp0aO7DAQAq+P2tCQMAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAoPeFkYULF8aYMWNi0KBBMWnSpFi5cmWbZW+77bb40Ic+FG95y1vKacqUKXssDwD0LZ0OI4sXL45Zs2bFvHnz4uGHH45x48bF1KlTY+PGja2WX758eZx55pnx4x//OFasWBGjR4+OE088MZ577rlKHD8A0MvVFUVRdGaD1BJy/PHHxy233FLONzQ0lAHjwgsvjNmzZ7e7/a5du8oWkrT99OnTO/Qzt27dGsOGDYstW7bE0KFDO3O4AEAmHf3+7lTLyM6dO2PVqlXlo5bdO+jXr5xPrR4dsX379nj99dfjwAMPbLPMjh07ygo0nQCA2tSpMLJ58+ayZWPEiBHNlqf59evXd2gfl156aRxyyCHNAk1L8+fPL5NU45RaXgCA2tStvWmuvfbauOuuu+Luu+8uX35ty5w5c8omncZp3bp13XmYAEA36t+ZwsOHD4/6+vrYsGFDs+VpfuTIkXvc9q//+q/LMHL//ffHe97znj2WHThwYDkBALWvUy0jAwYMiAkTJsSyZct2L0svsKb5yZMnt7ndV7/61bjqqqti6dKlcdxxx+3dEQMAfbdlJEndemfMmFGGiokTJ8aNN94Y27Zti5kzZ5brUw+ZUaNGle99JNddd11cccUV8Z3vfKccm6Tx3ZL99tuvnACAvq3TYWTatGmxadOmMmCkYDF+/PiyxaPxpda1a9eWPWwaff3rXy974Xz84x9vtp80TsmVV15ZiToAAH1pnJEcjDMCAL1PVcYZAQCoNGEEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACArYQQAyEoYAQCyEkYAgKyEEQAgK2EEAMhKGAEAshJGAICshBEAICthBADIShgBALLqH33U0xu3xUk3PRA7dhUxsL4ull50Qow9aN+K7X/9S6/FH938k9j62hsxdFD/+OGFH46RBwyq2P5XrnkxPvHNFbvnv3vu5Jj4zgMrsu/Hn385Trn5J7GriKivi7jnwg/HkYfsX5F9U9t2vtEQ317xTDz74vY47MAhcfbkMTGgf+V+53nuxVfj5K89ENt27Ip9B9bHj/7ihBh14OBecU9Yu3l7uf9XX2+Iwfv0K/f/9uFDes09p9rHT99WVxRF0dmNFi5cGAsWLIj169fHuHHj4uabb46JEye2Wf573/tezJ07N5555pl417veFdddd12ccsopHf55W7dujWHDhsWWLVti6NChsbcOn7MkGlqpdb+6iKfmn7rX+z967o/KC7aldAE/dtXJe73/MbOXtLnumWtP7bH7prbNv+fRuO2nTze7ttI1dd6HxsacU47Z6/0fcdk9sTMl5BYG1NfFE1d3/H6S457wzi8tiTfefEuIlNPWXNPz7znVPn5qV0e/vzv9K8vixYtj1qxZMW/evHj44YfLMDJ16tTYuHFjq+UfeuihOPPMM+Occ86J//qv/4ozzjijnH7xi19EDm3ddJK0PK3fG23dFJK0PK2vVljoyPpc+6b2g8g3ftI8iCRpPi1P66sRRJK0PK3vqfeEtr7Ik7Q8re/J95xqHz90KYzccMMNcd5558XMmTPjmGOOiUWLFsWQIUPijjvuaLX8TTfdFCeddFJccsklcfTRR8dVV10V73vf++KWW27p9jOQmmHbuuk0SutTua42k7Z1U2iU1qdyXX00U8lyLR/NVLIcfevRTGoR2ZO0PpXr6qOZtoLI7mPYVZTleto9IT3aaK/aaX0q1xPvOdU+fuhSGNm5c2esWrUqpkyZ8rsd9OtXzq9Y8bv3F5pKy5uWT1JLSlvlkx07dpRNO02nSkjPOytZrqX0vLaS5Vpq+o5IJco1ld4RqWQ5+o70jkhHvtBTua5I74hUslx33hN6+z2n2scPXQojmzdvjl27dsWIESOaLU/z6f2R1qTlnSmfzJ8/v3zG1DiNHj06KiG9mFbJci2lF8cqWa47dbTKXfy/hhqWXlatZLmW0suqlSzXnfeE9lotOluuu+851T5+6NFde+fMmVO+7NI4rVu3riL7TW/IV7JcS+kN9kqW604drXIX/6+hhqVeM5Us11LqNVPJct15T0gvkFayXHffc6p9/NCoU5+g4cOHR319fWzYsKHZ8jQ/cuTIVrdJyztTPhk4cGD51m3TqRJSV7RKlmspdaWrZLmWUvfdSpZrKnXfrWQ5+o7UfTf1OtmTtD6V64rUfbeS5brzntDb7znVPn7oUhgZMGBATJgwIZYtW7Z7WUNDQzk/eXLrX4BpedPyyX333ddm+WpKYwZ05KbZ1bEFUp/+9n5DSOu72ve/o+OIdGW8kY6OI2K8EVpK44ik7rt7ktZ3dbyRNI5I6r67x2Oor+vSeCPVviekcTjaq3Za39XxOqp9z6n28UOjTt8dUrfe2267Lb71rW/FY489Fueff35s27at7F2TTJ8+vXzM0uiiiy6KpUuXxvXXXx+rV6+OK6+8Mv7zP/8zLrjggsghjRnQ1s2nEmMKpD79bd0cKtHnv72xPvZmLJBq7pvalsYR+d8fHvumayvNp+V7O85IGkekrUCyt+OMVPuekMbhaOsLvRLjdFT7nlPt44cuD3qWuuU2Dno2fvz4+NrXvhaTJk0q1/3+7/9+jBkzJu68885mg55dfvnluwc9++pXv5p10LPECKxtMwIrXWUE1rYZgZW+aGsHv7+7FEa6WzXCCADQS0dgBQCoJGEEAMhKGAEAshJGAICshBEAICthBADIShgBALISRgCArIQRACCrnve37FvROEhsGskNAOgdGr+32xvsvVeEkZdffrn8d/To0bkPBQDowvd4Gha+V/9tmoaGhnj++edj//33j7q6dv7edycTWwo469at6xN/86Yv1Vdda1dfqq+61q6+Ut+iKMogcsghh0S/fv16d8tIqsChhx5atf2nD0Itfxj6cn3VtXb1pfqqa+3qC/UdtocWkUZeYAUAshJGAICs+nQYGThwYMybN6/8ty/oS/VV19rVl+qrrrWrr9W3Pb3iBVYAoHb16ZYRACA/YQQAyEoYAQCyEkYAgKxqJozs2rUr5s6dG2PHjo3BgwfHO97xjrjqqquajYef/vuKK66Igw8+uCwzZcqU+NWvftXuvhcuXBhjxoyJQYMGxaRJk2LlypXRk+v6+uuvx6WXXhrHHnts7LvvvuXId9OnTy9Hsd2TK6+8shzhtul01FFHRW84t5/61KfedOwnnXRSzZ3bpGU9G6cFCxb0unObRmb8/Oc/H4cddlhZ3/e///3xH//xHzV3zbZX11q7Zjtybmvlmu1IXWvpmq2aokZcffXVxVvf+tbihz/8YfH0008X3/ve94r99tuvuOmmm3aXufbaa4thw4YV//RP/1T87Gc/K04//fRi7Nixxauvvtrmfu+6665iwIABxR133FH88pe/LM4777zigAMOKDZs2FD01Lq+9NJLxZQpU4rFixcXq1evLlasWFFMnDixmDBhwh73O2/evOL3fu/3ihdeeGH3tGnTpqI3nNsZM2YUJ510UrNjf/HFF/e43954bpOmdUxTOv66urriySef7HXn9hOf+ERxzDHHFA888EDxq1/9qjzOoUOHFr/+9a9r6pptr661ds125NzWyjXbkbrW0jVbLTUTRk499dTi05/+dLNlf/Inf1KcddZZ5X83NDQUI0eOLBYsWLB7fboBDBw4sPiHf/iHNvebbgif+9znds/v2rWrOOSQQ4r58+cXPbWurVm5cmX61bp49tln9/jhHzduXNHTdKS+6cb2sY99rFP7rZVzm+r90Y9+dI/77Ynndvv27UV9fX0ZvJp63/veV1x22WU1dc22V9dau2Y7Ut9auWa7cm576zVbTTXzmCY1iy1btiyeeOKJcv5nP/tZPPjgg3HyySeX808//XSsX7++bOZtOl5+auZbsWJFq/vcuXNnrFq1qtk26e/kpPm2tukJdW3Nli1byma+Aw44YI/7Tk3gqYn48MMPj7POOivWrl0buXW0vsuXL4+DDjoojjzyyDj//PPjN7/5TZv7rJVzu2HDhliyZEmcc8457e67p53bN954o3wslZrbm0rN3KnOtXTNtlfXWrtmO1rfWrhmO3tue/M1W1VFjUgJ+dJLLy2bvvr371/+e8011+xe/6//+q/lbxnPP/98s+3+9E//tGxia81zzz1XbvPQQw81W37JJZeUCb2n1rWl1KSdUvonP/nJPe73nnvuKb773e+WzeFLly4tJk+eXLz97W8vtm7dWuTUkfqm35T/+Z//ufjv//7v4u677y6OPvro4vjjjy/eeOONmj631113XfGWt7xlj48tevK5TcdxwgknlOcjnatvf/vbRb9+/Yojjjiipq7Z9upaa9dsR+pbK9dsZ89tb79mq6Vmwkj6YB966KHlv+nD/Xd/93fFgQceWNx5553l+lq6sbVX16Z27txZnHbaacV73/veYsuWLZ36Ob/97W/L557f/OY3i5w6U99G6VlsOnf3339/zZ7b5MgjjywuuOCCTv+cnnJu16xZU3z4wx8uz0Vq6k5fRumR1FFHHVVT12x7da21a7Yz9e3t12xn69rbr9lqqZnHNJdccknMnj07/uzP/qx8I/3ss8+Oiy++OObPn1+uHzly5O4msqbSfOO6loYPHx719fWd2qYn1LVRekP/E5/4RDz77LNx3333dfrPVKfm4SOOOCLWrFkTOXW0vk2lZs10/to69t5+bpOf/vSn8fjjj8e5557b6Z/TU85t6i30wAMPxCuvvBLr1q0re0akz206f7V0zbZX11q7Zjta31q4ZjtT11q4ZqulZsLI9u3by+eHTaUPbkNDQ/nfqatk+sCm5/GNtm7dGv/+7/8ekydPbnWfAwYMiAkTJjTbJu0vzbe1TU+oa9ObWnrmeP/998db3/rWTv+cdGE9+eSTZbfKnDpS35Z+/etfl8+f2zr23nxuG91+++1lHcaNG9drz22j1J01Hctvf/vbuPfee+NjH/tYTV2z7dW11q7ZjtS3Vq7ZztS1lq7ZiitqRHoze9SoUbu7RH7/+98vhg8fXnzxi1/cXSZ1E0zdwBqfU6Y3mlt2E0xvON98883NupKlt/dTM/mjjz5afOYznyn3sX79+qKn1jU186YukKm5/5FHHmnWNWzHjh1t1vUv//Ivi+XLl5f7TE3kqath2u/GjRuLnNqr78svv1x84QtfKLtDpvWpmTc9b3/Xu95VvPbaazV1bhul5vshQ4YUX//611vdT285t+lZ+I9+9KPiqaeeKv7lX/6l7D0wadKk8jNcS9dse3WttWu2vfrW0jXbkc9xLV2z1VIzYSS91HPRRReVL/gMGjSoOPzww8tuVU0v5NRVcO7cucWIESPKD/Qf/MEfFI8//niz/Rx22GFll6qm0gck7Tf1b0/PJv/t3/6t6Ml1TR/elDNbm3784x+3Wddp06YVBx98cFnP9IWY5tOz0Nzaq2/qWnfiiScWb3vb24p99tmnrFcaf6DlDaoWzm2jb3zjG8XgwYPLrq6t6S3nNo2rkeqYjit1403dNpvWqVau2fbqWmvXbHv1raVrtiOf41q6ZqulLv1P5dtbAAD62DsjAEDvJIwAAFkJIwBAVsIIAJCVMAIAZCWMAABZCSMAQFbCCACQlTACAGQljAAAWQkjAEBWwggAEDn9P33ycAzx9VAJAAAAAElFTkSuQmCC"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 4
  },
  {
   "metadata": {},
   "cell_type": "code",
   "source": "!pip install tensorboard",
   "id": "8223bed0d2009730",
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "markdown",
   "id": "1dde8dbda9891a99",
   "metadata": {},
   "source": [
    "## 网络结构可视化\n",
    "### tensorboard"
   ]
  },
  {
   "cell_type": "code",
   "id": "8cba7494e8571bf6",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T02:08:23.736971Z",
     "start_time": "2025-06-20T02:08:23.674870Z"
    }
   },
   "source": [
    "# pip install tensorboard\n",
    "# tensorboard --logdir=runs\n",
    "\n",
    "import torch\n",
    "from torch.utils.tensorboard import SummaryWriter\n",
    "\n",
    "\n",
    "class SimpleModel(torch.nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.layer1 = torch.nn.Linear(1, 4)  # 隐藏层4个神经元，线性层\n",
    "        self.layer2 = torch.nn.Linear(4, 1)  # 输出层，线性层\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = torch.relu(self.layer1(x))\n",
    "        x = self.layer2(x)\n",
    "        return torch.sigmoid(x)\n",
    "\n",
    "\n",
    "model = SimpleModel()\n",
    "print(model)\n",
    "\n",
    "# 查看模型参数\n",
    "print(model.state_dict())\n",
    "\n",
    "writer = SummaryWriter()\n",
    "x = torch.randn(100, 1)\n",
    "writer.add_graph(model, x)\n",
    "writer.close()"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SimpleModel(\n",
      "  (layer1): Linear(in_features=1, out_features=4, bias=True)\n",
      "  (layer2): Linear(in_features=4, out_features=1, bias=True)\n",
      ")\n",
      "OrderedDict([('layer1.weight', tensor([[-0.1323],\n",
      "        [ 0.3015],\n",
      "        [-0.1852],\n",
      "        [-0.4852]])), ('layer1.bias', tensor([-0.3165,  0.4945, -0.6972, -0.7714])), ('layer2.weight', tensor([[ 0.2264,  0.4072, -0.2901,  0.0961]])), ('layer2.bias', tensor([-0.1050]))])\n"
     ]
    }
   ],
   "execution_count": 7
  },
  {
   "cell_type": "markdown",
   "id": "8315e9344312a3a9",
   "metadata": {},
   "source": [
    "### ONNX"
   ]
  },
  {
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T02:12:42.313254Z",
     "start_time": "2025-06-20T02:12:34.744112Z"
    }
   },
   "cell_type": "code",
   "source": "!pip install onnx",
   "id": "7b1c78549eb89237",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting onnx\r\n",
      "  Downloading onnx-1.18.0-cp310-cp310-macosx_12_0_universal2.whl.metadata (6.9 kB)\r\n",
      "Requirement already satisfied: numpy>=1.22 in /Users/dadudu/miniconda3/envs/mini-gpt/lib/python3.10/site-packages (from onnx) (2.2.6)\r\n",
      "Requirement already satisfied: protobuf>=4.25.1 in /Users/dadudu/miniconda3/envs/mini-gpt/lib/python3.10/site-packages (from onnx) (6.31.1)\r\n",
      "Requirement already satisfied: typing_extensions>=4.7.1 in /Users/dadudu/miniconda3/envs/mini-gpt/lib/python3.10/site-packages (from onnx) (4.14.0)\r\n",
      "Downloading onnx-1.18.0-cp310-cp310-macosx_12_0_universal2.whl (18.3 MB)\r\n",
      "\u001B[2K   \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m18.3/18.3 MB\u001B[0m \u001B[31m13.3 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\r\n",
      "\u001B[?25hInstalling collected packages: onnx\r\n",
      "Successfully installed onnx-1.18.0\r\n"
     ]
    }
   ],
   "execution_count": 15
  },
  {
   "cell_type": "code",
   "id": "a99ac1bf35e46756",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-06-20T02:12:47.642165Z",
     "start_time": "2025-06-20T02:12:46.812072Z"
    }
   },
   "source": [
    "# pip install onnx\n",
    "\n",
    "import torch\n",
    "import numpy as np\n",
    "\n",
    "\n",
    "class SimpleModel(torch.nn.Module):\n",
    "    def __init__(self):\n",
    "        super().__init__()\n",
    "        self.layer1 = torch.nn.Linear(1, 4)  # 隐藏层4个神经元，线性层\n",
    "        self.layer2 = torch.nn.Linear(4, 1)  # 输出层，线性层\n",
    "\n",
    "    def forward(self, x):\n",
    "        x = torch.relu(self.layer1(x))\n",
    "        x = self.layer2(x)\n",
    "        return torch.sigmoid(x)\n",
    "\n",
    "\n",
    "model = SimpleModel()\n",
    "print(model)\n",
    "\n",
    "# 查看模型参数\n",
    "print(model.state_dict())\n",
    "\n",
    "dummy_input = torch.randn(100, 1)\n",
    "torch.onnx.export(model, dummy_input, \"model.onnx\")\n",
    "\n",
    "# 利用https://netron.app/进行查看。"
   ],
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SimpleModel(\n",
      "  (layer1): Linear(in_features=1, out_features=4, bias=True)\n",
      "  (layer2): Linear(in_features=4, out_features=1, bias=True)\n",
      ")\n",
      "OrderedDict([('layer1.weight', tensor([[ 0.2864],\n",
      "        [-0.6674],\n",
      "        [ 0.0467],\n",
      "        [ 0.3517]])), ('layer1.bias', tensor([ 0.7096, -0.9159, -0.3579,  0.9385])), ('layer2.weight', tensor([[ 0.2062, -0.0419, -0.2206, -0.1286]])), ('layer2.bias', tensor([0.0289]))])\n"
     ]
    }
   ],
   "execution_count": 16
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.20"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
